我正在尝试为我的应用程序设计数据库,而我正在努力解决问题。
我需要存储一个集合:
如您所见,该集合具有ID和日期,目前为止很容易。 (请忽略analyzeID)
问题是目标,这有点棘手。集合可以有两种不同类型的目标(比方说,一本书或一本杂志 - 相互排斥),两者都有最终可能重合的ID,因为它们位于两个不同的表中。对此有什么好处? 我想创建两个不同的外键(一个用于书,另一个用于杂志),其中一个永远是NULL,我认为这远非最好的方法。
对不起,如果有什么不清楚,如果您有任何疑问,请问:)
谢谢!
答案 0 :(得分:3)
在您的应用程序Book
中,实体和Magazine
实体似乎可以扮演相同的角色,它被称为目标角色。
它让我有一个书和杂志的基表,包含它们的共享属性,如名称,日期释放,......我将调用基表Writing
表。
写作表将与杂志和书籍(forigen key)有一对一的关系
写作将成为书籍和杂志的主键。)
在集合表(target-id)中写入密钥将解决问题。