1

我正在尝试为我的应用程序设计一个数据库,但我正在努力解决一些问题。

我需要存储一个集合:

在此处输入图像描述

如您所见,集合有一个 ID 和一个日期,到目前为止很容易。(请忽略分析ID)

问题是目标,这有点棘手。一个集合可以有两种不同类型的目标(比如说,一本书或一本杂志——相互排斥),它们的 ID 最终可能会重合,因为它们位于两个不同的表中。什么是一个好的方法?我考虑过创建两个不同的外键(一个用于书籍,另一个用于杂志),其中一个始终为 NULL,我认为这远非最佳方法。

抱歉,如果有不清楚的地方,如果您有任何疑问,请尽管问:)

谢谢!

4

1 回答 1

3

看起来在你的应用程序中Book实体和Magazine实体可以扮演相同的角色,它被称为目标角色。
它使我有一个包含它们的共享属性的书籍和杂志的基表,例如名称、发布日期……我将调用基Writing表表。

写作表与杂志和书籍是一​​一对应的(写作的外键是书籍和杂志的主键)。

在集合表(target-id)中有写入键将解决问题。

在此处输入图像描述

于 2013-10-17T08:39:56.073 回答