tenxian said:
Can we spend some time discussing this topic?
Start with a fundamental decision: do I need a database only for
serializing/restoring object states or do I consider the RDBMS a core
element in the overall system architecture?
If you want the former then simply use an ORM tool and layout the
database conforming. This usually means that the database design is a
result of the application design.
If you consider the RDBMS a core deliverable then do a thorough
relational database separate from your application design. This has
NOTHING to do with objects or things being "object oriented", whatever
that means. Sabine has provided some links on the subject.
The advantage of the latter is that you get a generally useful
relational database that can be shared by your custom application(s) as
well as standard software tools (for example reporting-tools or
OLAP/DataWarehouse ETL tools). The disadvantage is that you have to
define a more sophisticated mapping between the object structure in your
application(s) and the RDBMS.
Regards,
Silvio Bierman