我目前正在尝试建立一个关系数据库(H2),它将JAVA Model的面向对象结构投影到我的数据库的关系表中。我正在使用JDBC和H2 RDBMS。
所以这是我的问题: 我有一个类型"属性"的对象应该存储在表"属性"中。该属性的所有者可以是" Function"的类型的对象。或类型" Block"谁都有自己的桌子。一个属性对象只能由一个对象(函数或块)拥有,使其成为1:n基数。
然而,我正在努力解决如何在属性表中包含所有者的问题。如果我创建一个名为" ownerID"并且在其中存储所有者的ID(全局唯一ID btw),数据库缺少关于哪个表包含此ID的信息(即使它是GUID)。- 例如,可以包含另一个包含owner_ID所属表的名称的列吗?
- 另一个想法是包括一个" functionOwnerID"列和一个" blockOwnerID"并将其中一个留空,但这对我来说似乎是一个相当肮脏的解决方案。
我希望我对这个问题的描述很清楚,并提前感谢!
最好的问候, Moritz的
答案 0 :(得分:0)
“例如,是否可以包含另一个包含owner_ID所属的表名称的列?”
这就是多态关系的工作方式! :)
编辑:(是的,你可以这样做而且它实际上很常见)
参考文献: