【问题标题】:Database design with foreign key possibly being from different tables外键可能来自不同表的数据库设计
【发布时间】:2013-10-25 01:32:46
【问题描述】:

我正在尝试为我的应用程序设计一个数据库,但我遇到了一些问题。

我需要存储一个集合:

如您所见,Collection 有一个 ID 和一个日期,到目前为止很简单。 (请忽略分析ID)

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

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

谢谢!

【问题讨论】:

标签: mysql database database-design mysql-workbench


【解决方案1】:

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

写字台与杂志和书籍是一​​一对应的关系(外键 写作将是书籍和杂志的主键)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-04
    • 2011-04-14
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    相关资源
    最近更新 更多