【发布时间】:2021-01-24 13:37:02
【问题描述】:
我需要知道我在多对多表之间建立的关系是否正确。 Books_Authors = 书籍应该可以有多个作者,作者应该可以分配给多个书籍,对吗?
贷款表,我的建议是一个用户应该能够进行多次贷款,但一本书的副本一次只能借一次。对吗?
我的关系和密钥设置是否正确以支持此逻辑?
【问题讨论】:
标签: sql-server database-diagram
我需要知道我在多对多表之间建立的关系是否正确。 Books_Authors = 书籍应该可以有多个作者,作者应该可以分配给多个书籍,对吗?
贷款表,我的建议是一个用户应该能够进行多次贷款,但一本书的副本一次只能借一次。对吗?
我的关系和密钥设置是否正确以支持此逻辑?
【问题讨论】:
标签: sql-server database-diagram
首先,设计很不错!你在正确的轨道上,这是肯定的。几个(自以为是(这是你能做的最好的,因为没有一个完美的设计))cmets:
【讨论】:
作为一般方法,这看起来是一个很棒的开始。
'Copies' 表上的非常好的选择 - 我想大多数人会错过第一次尝试。
在您的多对多表(Books_Authors 和 Loans)中,正确的关系(外键)存在一些问题 - 我建议您看看它们。
我认为您需要考虑的一个问题是“我们是希望数据仅代表当前状态,还是还希望保留历史记录?”
您对此的回答将影响设计——尤其是在副本和外借表周围。
如果您只表示当前状态,那么您可能不需要 Loans 表。相反,针对每个副本,只需保存 User_ID 和相关日期。借出时,更新用户 ID 和日期;返回时,将这些日期设为 NULL。
但是,如果您想要历史记录(我猜您会这样做),那么您可能需要开始添加一些内容
需要考虑的其他一些事情
【讨论】: