与贷款表的关系正确吗?

问题描述

enter image description here

您好堆高车!

我想知道我已经制作了一个图书馆数据库。.我正在复制和贷款之间建立一对一的关系。以及用户与贷款之间的一对多关系。

由于只允许一次分配一本书的副本,所以一次贷款只能包含一本书的副本。如果他们租用其他书籍,则其多笔贷款。

并且一个用户应该能够进行多笔贷款,但是只能为一个特定的用户分配一笔贷款。

这三个表之间的当前关系正确吗? 如果没有,我很想知道如何解决它,以及我对此问题逻辑失败的原因。

先谢谢您!

解决方法

该模型对我来说很好。您可能需要在逻辑上应用一些知识,以使用户只能借用同一本书的一本贷款。

用户将能够一次又一次借出副本吗?然后将借贷关系复制到1:M

,

根据先前的答案。如果添加User_Roles表,它可能/(将)阻止您陷入成员资格陷阱。如果您假设具有Admin角色的用户可以执行仅具有Basic角色的用户的所有功能,则每个需要角色检查的功能都必须具有可接受角色的列表(Admin + Basic)。很多时候,将所有不同的角色(即基本AND管理员)直接分配给各个用户会更有效率。然后,当功能需要基本角色授权时,所有用户都可以以相同的方式对待。从长远来看,这更简单。

“贷款”表存在许多问题。首先,没有主键,为了与您的设计其余部分保持一致,它可以是LoanID。 CopyID应该是“副本”表的外键(也许就是当前绘制的内容)。

对数据模型的一种“高级”或现代方法可能是使用时间表对副本进行建模。由于单个副本只能借出1次,因此可以将贷款的属性添加到“副本”表中。然后,只要对“系统版本”的“副本数”表进行了更改,“ Copies_history”表将自动保留所有先前贷款活动的完整账目。