If I have 2 million rows in a db4o database, would you recommend a large flat table, or a hierarchy?

As Sam Stainsby already pointed out in his commend, db4o doesn't have the notion of tables. It stored objects and thats db4o's unit of storage. Don't try to think in terms of tables, that doesn't really work with db4o As you said, you repeat information, so thats a good candidate to be separated in a other objects, which then can be referenced by other objects.In general I would first design a good domain-model, to be aware of how the data is organized and related to each other.

And to think about what kind of data-access-patterns you have. And then try to find out how you can design your classes/object in a way which works with db4o To actually answer your question, I would need more information. What kind of information do you store?

Ans what are the access-patterns of your data? Are reading single objects by a query / search. Or are you reading a lot of objects which are related to each other?

In general db4o (and other object databases) are good at navigational access. This means that you first query for some objects, and from there you navigate to related objects. For example you first query for a user-object.

From there you navigate to the users home, city, job, friends etc objects. That kind of access works in great in db4o So in your example in your case the 4-tier hierarchy can work great with db4o, but only when you can navigate from the root to the symbol object and so on. That mean that the root object has a collection of its 'children'-object Btw: If you feel that is more natural to think in terms of tables for your data, then I recommend using a relational database.

Relations databases are awesome at dealing with tables.

As Sam Stainsby already pointed out in his commend, db4o doesn't have the notion of tables. It stored objects and thats db4o's unit of storage. Don't try to think in terms of tables, that doesn't really work with db4o.As you said, you repeat information, so thats a good candidate to be separated in a other objects, which then can be referenced by other objects.

In general I would first design a good domain-model, to be aware of how the data is organized and related to each other. And to think about what kind of data-access-patterns you have. And then try to find out how you can design your classes/object in a way which works with db4o.

To actually answer your question, I would need more information. What kind of information do you store? Ans what are the access-patterns of your data?

Are reading single objects by a query / search. Or are you reading a lot of objects which are related to each other?. In general db4o (and other object databases) are good at navigational access.

This means that you first query for some objects, and from there you navigate to related objects. For example you first query for a user-object. From there you navigate to the users home, city, job, friends etc objects.

That kind of access works in great in db4o. So in your example in your case the 4-tier hierarchy can work great with db4o, but only when you can navigate from the root to the symbol object and so on. That mean that the root object has a collection of its 'children'-object Btw: If you feel that is more natural to think in terms of tables for your data, then I recommend using a relational database.

Relations databases are awesome at dealing with tables.

Well said. – Sam Stainsby Feb 24 at 23:29 Thank you very much for your comments, you know a lot about db4o and I'm grateful for your help. I've answered your questions as best as I can, above.

– Gravitas Feb 27 at 23:46.

That kind of access works in great in db4o. So in your example in your case the 4-tier hierarchy can work great with db4o, but only when you can navigate from the root to the symbol object and so on. Btw: If you feel that is more natural to think in terms of tables for your data, then I recommend using a relational database.

Relations databases are awesome at dealing with tables.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions