繁体   English   中英

借贷网络的ER模型?

[英]ER-Model for Borrowing-Lending-Network?

我计划创建我的第一个数据库,因此这将是一个新手问题。 我的数据库应该是一个借贷网络,用户可以在其中借用其他用户的产品。 创建一个用户帐户应该足以能够同时借贷。 唯一的例外应该是用户不能借用他自己提供的产品。

所以我的问题是,这两种选择中哪一种更好:

为用户提供一个可以借贷的实体。 实体名称“ USER”。 为了防止使用者借用自己的产品,借款人和捐赠人都有两个不同的实体吗?

如果我正确理解了您的问题,建议您采用第三种方法:

  • USER模型=这些是可以借贷的用户
  • ITEM模型=标识可以借用的项目以及谁拥有这些项目
    • owner_id =引用USER对象的ID。
  • HISTORY模型=跟踪贷款历史,可能包括以下内容:
    • item_id =引用了ITEM的ID
    • borrower_id =引用借用该项目的USER的ID
    • borrowed_at =物品借入的时间戳
    • returned_at =时间返回给所有者的时间戳。

使用此模型,可以很直接地确保borower_id和item.owner_id不相同,并确保不能将同一项目同时借给两个不同的借方。

从SQL的角度来看,可以通过执行以下操作找到我不拥有的所有项(其中MY_ID是我的user.id):

SELECT * from items where owner_id != MY_ID;

如果要查找我不拥有的所有且当前未借用的物品,也许:

SELECT * from items where owner_id != MY_ID and id not in (select item_id from history where borrowed_at is not null and returned_at is null);

当然,其他语言的语法也会有所不同。

您可以使用六种不同的方式对此进行建模,但是在不了解您的用例的情况下,这就是我的起点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM