我在建模数据库以存储一些Java对象时遇到了问题(将对象映射到关系数据库的经典问题)。一个例子比长篇描述要好得多,这就是东西。
可用类列表:
- A类包含一系列双打
- B类包含A
数组
- C类包含一个B数组和一个A数组(它可以继续......)
所有对象实现相同的父对象(比如说StorableObject)。可以有尽可能多的组合。
如何存储所有这些值,而且,如何使用某些FK创建模型,删除父对象时删除其所有子项。我的意思是,由于孩子们可以存储在各种表格中,所以我无法在父母的字段上放置简单的FK。
谢谢;)
答案 0 :(得分:5)
你读过太多的OO书而不是一本RDB书。首先将数据建模为数据。确保满足您的所有数据要求(根据您的问题)。然后在实体之后为对象建模。
对于那些已经到达 the exact same obstacle 的人,有数百个相同的问题。不同的表和列名称,但相同的问题相同。福勒把你们所有人带到了这里。
为了仔细检查您的数据并提供有用的答案,我们需要查看您的DDL或类图或您拥有的任何内容。
答案 1 :(得分:3)
只是我的意见,但似乎你可能过度概括了。
因为如上所述,它听起来像两张桌子。一个“事物”表,以及将“事物”与其子项联系起来的交叉引用。如果是这种情况,外键的“ON DELETE CASCADE”子句就可以了。