【问题标题】:Polymorphic Lists and relational database多态列表和关系数据库
【发布时间】:2011-06-19 04:38:48
【问题描述】:

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

可用类列表:
- A 类包含一个双精度数组
- B 类包含 A 的数组
- C 类包含一个 B 数组和一个 A 数组(可以这样继续......)

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

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

谢谢 ;)

【问题讨论】:

    标签: java oop orm relational-database hsqldb


    【解决方案1】:

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

    到达 the exact same obstacle 的人有数百个关于 SO 的相同问题。不同的表名和列名,但同样的问题。 Fowler 把你们都带到了这里。

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

    【讨论】:

    • +1 Martin Fowler 应该获得某种终生成就意识,因为它阻碍了数据库应用工程的事业。
    【解决方案2】:

    只是我的看法,但您似乎过于笼统了。

    因为如上所述,它听起来像两个表。 “事物”表,以及将“事物”链接到其子项的交叉引用。如果是这种情况,外键的“ON DELETE CASCADE”子句就可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-08
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      相关资源
      最近更新 更多