多态列表和关系数据库

时间:2011-02-01 10:43:06

标签: java oop orm relational-database hsqldb

我在建模数据库以存储一些Java对象时遇到了问题(将对象映射到关系数据库的经典问题)。一个例子比长篇描述要好得多,这就是东西。

可用类列表:
    - A类包含一系列双打
    - B类包含A
数组     - C类包含一个B数组和一个A数组(它可以继续......)

所有对象实现相同的父对象(比如说StorableObject)。可以有尽可能多的组合。

如何存储所有这些值,而且,如何使用某些FK创建模型,删除父对象时删除其所有子项。我的意思是,由于孩子们可以存储在各种表格中,所以我无法在父母的字段上放置简单的FK。

谢谢;)

2 个答案:

答案 0 :(得分:5)

你读过太多的OO书而不是一本RDB书。首先将数据建模为数据。确保满足您的所有数据要求(根据您的问题)。然后在实体之后为对象建模。

对于那些已经到达 the exact same obstacle 的人,有数百个相同的问题。不同的表和列名称,但相同的问题相同。福勒把你们所有人带到了这里。

为了仔细检查您的数据并提供有用的答案,我们需要查看您的DDL或类图或您拥有的任何内容。

答案 1 :(得分:3)

只是我的意见,但似乎你可能过度概括了。

因为如上所述,它听起来像两张桌子。一个“事物”表,以及将“事物”与其子项联系起来的交叉引用。如果是这种情况,外键的“ON DELETE CASCADE”子句就可以了。