You guys have been a lot of help. This is the idea I've gotten from the discussion we've had.

Three tables:

1) Method table
I did not mention this, because I pretty much already had the idea down. It will have the following columns:
   <objID><owner><flags><params><code>
Where <code> is a text entry that has stored some code in a language which this server will use, which is run through a tokenizer/lexer/parser/virtual machine when necessary. While the methods are inherieted as well, they're inherieted as-is, you cannot change a method on a child object unless you create a new one and overload a parent's method.

2) Object table
<objID><flags><owner><parent><childCount><propCount><methodCount>

3) Property table

<objID><flags><owner><name><type><value>
Type refers to an int value that represents an in-server datatype. The main difference is that I realized that I wouldn't necessarily need a row for EVERY property, only if a property is different than the value stored on the parent object. If its the same, it can have no entry and the code will just look to its parent (and its parent's parent, and so on) until it finds the correct value to inheriet. I think that will reduce the number of rows significently, if add a couple of CPU cycles but I think it will make up for it in the querying.



Reply via email to