From: Curt Sampson Date: 2004-11-18T14:43:42+09:00 Subject: In-memory Relational Data Storage I've been dealing with some slightly more complex groups of data lately. Say, something like this: I have a dozen Libraries. Each library carries some volumes of zero or more Journals. For example, Library L1 might have volumes 1-35 of Journal J1, and Library L2 might have volumes 25-40 of Journal J1. Each Volume has one or more Articles in it, and the same Article might be found in multiple Volumes of the same or different Journals. So I make classes for all of these and started hooking them up together, beginning with the obvious tree structure (Libraries reference Journals, which reference Volumes, which reference Articles.) But then I realize that I had some lookups I wanted to do that needed some different types of references, for example, "name all the Journals that have published Article A37." So I start adding more ways of doing efficient lookups, start to worry about various data structures getting out of sync, get some fairly nasty code to search down through tree structures, and start to become unhappy. And then it hits me. The source of all my problems is that, stuck in my 'A has a B' reference rut, I've just constructed a hierarchial database, which is the source of all my pain. Well, this is a problem we solved forty years ago when Codd came up with the idea of relational databases. So, has anybody built some sort of relational storage system for Ruby that will let me describe my data in some sort of E/R-ish way and get stuff out from any direction I care to use? cjs -- Curt Sampson +81 90 7737 2974 http://www.NetBSD.org Make up enjoying your city life...produced by BIC CAMERA