【发布时间】:2013-04-20 14:30:26
【问题描述】:
我需要在数据库中表示以下信息(简化):
- 一套“账单”。 (在表中
Bills) - 一组“代表”。 (在表中
MPs) - 每个法案的作者。
- 如果只有“代表”可以是作者,这将是一个简单的链接表,其中包含指向
Bills和MPs的外键。 - 还有一个(只有一个)其他“实体”也可以是账单的作者,因此:
- 我可以将
NULL重新定义为“实体”,但这很难看。 - 我可以简单地忘记 FOREIGN KEY 约束,但这更难看。
- 我可以将
- 如果只有“代表”可以是作者,这将是一个简单的链接表,其中包含指向
根据数据库理论,表示此信息的正确方式是什么?
有一个表linktable_authors 链接Bills 和MPs 是否适合“代表”编写的“票据”,而另一个表authored_by_The_Entity 仅用于“实体”编写的“票据” (如果我死了,确定以后不会有其他实体出现)?
奖金问题: 如果还有一个表“Other_Entities”,并且“Other_Entities”和“Representatives”都可以是“Bills”的作者怎么办?
【问题讨论】:
标签: sql database database-design relational-database database-schema