与 Loans table 的正确关系?

Correct relations to Loans table?

你好堆垛机!

我已经建立了一个图书馆数据库,我想知道..我正在建立副本和借阅之间的一对一关系。以及从用户到贷款的一对多关系。

由于一本书只能一次被分配一个外借,而外借只能包含一本书。如果他们租其他书,就是多笔贷款。

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

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

提前致谢!

这个模型我觉得不错。您可能需要在逻辑中应用一些内容来强制用户只能借用同一本书的副本。

用户可以一次又一次地借出一份副本吗?然后将loan的关系复制1:M

根据之前的回答继续。如果您添加 User_Roles table 它可以/(将)防止您落入会员陷阱。如果您假设具有 Admin 角色的用户可以执行仅具有 Basic 角色的用户的每个功能,那么每个需要 role-checking 的功能都必须具有 acceptable 角色列表(Admin + Basic)。很多时候,直接将所有不同的角色(即基本和管理员)分配给各个用户会更有效。然后当一个功能需要 Basic role-authorization 时,所有用户都可以以同样的方式对待。在长 运行.

中更简单

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

您的数据模型的一种 'advanced' 或现代方法可能是使用时间 table 对副本建模。由于单份只能借出 1 次,因此可以将借出的属性添加到副本 table 中。然后,无论何时进行更改,系统版本的副本 table Copies_history table 都会自动保留所有先前贷款的完整账目 activity.