While oracle is in fact at it's core a relational database structure, oracle8i and above provide some nifty objectish approaches to both storing and recovering data in more complex structures. Think of the fields represented here with *_NT as being tables within the row elements of the interface table. In perl you would call this strucrure a multi dimensional hash, where the keys *_NT point to embedded hashes as their values. The upshot of doing something like this is that when you are dealing with many tables which have extremely large counts of row data, you do not have to do explicit joins to find the data you wish to retrieve, thus making things run ALOT faster by avoiding the need to create a large cartesian product and then eliminating rows before retrieving your data. I cant possibly have been the first person to try this. <:) --perlboy