我目前正在尝试建立一个关系数据库 (H2),它将 JAVA 模型的面向对象结构投影到我的数据库的关系表中。我正在使用 JDBC 和 H2 RDBMS。
所以这是我的问题:我有一个“属性”类型的对象,它应该存储在“属性”表中。此属性的所有者可以是“功能”类型的对象,也可以是“块”类型的对象,它们都拥有自己的表。一个属性对象只能由一个对象(函数或块)拥有,使其成为 1:n 基数。
然而,我正在努力解决如何将所有者包含在属性表中。如果我创建一个名为“ownerID”的表并将所有者的 ID(顺便说一句,全局唯一 ID)存储在其中,则数据库将缺少有关哪个表包含此 ID 的信息(即使它是一个 GUID)。
- 例如,可以包含另一列包含 owner_ID 所属表的名称吗?
- 另一个想法是包含一个“functionOwnerID”列和一个“blockOwnerID”并将其中一个留空,但这对我来说似乎是一个相当肮脏的解决方案。
我希望我对问题的描述清楚,并提前致谢!
最好的问候, 莫里茨
“例如,可以包含另一列包含 owner_ID 所属表的名称吗?”
这就是多态关系的工作原理!:)
编辑:(是的,你可以这样做,这实际上很常见)
参考:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句