Database 最佳解决方案-三元或二元关系

Database 最佳解决方案-三元或二元关系,database,database-design,entity-relationship,Database,Database Design,Entity Relationship,我试图为我的一门课程完成一个问题,它围绕着哪个关系是最好的解决方案——二元还是三元 关系示例 所以它是一个视频商店,有三个实体——视频、会员和休闲 成员和临时工可以借用视频,并记录借用日期 一个三元关系是否是最合适的解决方案,因为一个成员和一个偶然的借用视频没有区别? 你认为“借用”钻石代表什么三元(3实体)关系?它介于会员客户、视频、临时客户和贷款日期之间。“会员从休闲娱乐网站借来的视频”?“这段视频是一个偶然出击的成员,出生在借来的人身上”?“会员借来的借来的视频在借来时到期且临时为空,或

我试图为我的一门课程完成一个问题,它围绕着哪个关系是最好的解决方案——二元还是三元

关系示例

所以它是一个视频商店,有三个实体——视频、会员和休闲

成员和临时工可以借用视频,并记录借用日期

一个三元关系是否是最合适的解决方案,因为一个成员和一个偶然的借用视频没有区别?

你认为“借用”钻石代表什么三元(3实体)关系?它介于会员客户、视频、临时客户和贷款日期之间。“会员从休闲娱乐网站借来的视频”?“这段视频是一个偶然出击的成员,出生在借来的人身上”?“会员借来的借来的视频在借来时到期且临时为空,或临时借来的视频在借来时到期且会员为空”?左、右二进制“借用”关系同上

(我使用谓词(由列参数化的语句模板)来表示表的“含义”。插入一行时,会得到一个命题(语句)。每个表(基或查询结果)都包含使其谓词成为真正命题的行。关系运算符(联接、并集等)可以选择使用所需查询谓词的逻辑非终结符(and、OR等)来表示和计算谓词表达式。)

这个图表有一个菱形。它必须代表会员、视频和临时实体加上贷款之间的关系。对于三元借款来说,似乎很难想出一个合理的方案,不是吗?如果你想不出一个,那么这不是一个描述你的情况的图表。我想不出哪一个是仅限于这三种实体的三胞胎。而二进制文件很容易理解

PS我唯一的警告是:我给出的第三个选项实际上是数据库表中体现的典型关系。但这不仅仅是模型实体之间的关系。它还涉及一个“null”值。如果我们把关系看作是标识实体或不识别的值,那么我们可以使用NULL。
Borrows:
    "MEMBER borrowed VIDEO due on LOANDATE and CASUAL is null
    or CASUAL borrowed VIDEO due on LOANDATE and MEMBER is null"
MEMBER  VIDEO   CASUAL   LOANDATE
=================================
  1       a      null    1/1/2000
  2       b      null    1/2/2000
 null     c    1234567   2/3/2000
我不知道你们老师的用意。但我怀疑他们没料到你会牵涉进去


PPS Re“如果会员和临时会员可以同时借用同一个视频,二元关系会有问题吗?”我不知道你在想什么。但是关系只包含从其语句模板生成真正语句的行。它描述了这种情况。它不能以某种方式造成这种情况。“商业规则”(和物理学!)限制了出现的情况。但您确实需要记录足够的信息来运营业务。数据库管理系统可以被告知不可能的数据库状态,这样它就可以拒绝它们。

这两种方法的含义是什么?DB模式是什么样子的?存储数据时必须考虑什么?提示:是否会有会员和临时客户同时借用的视频如果没有,如何在数据上实施该约束?@HannoBinder在问题中没有提供其他信息,因此您可以假设一个视频上有多个副本可以借用,但是会员和临时会员不能借用完全相同的副本。您应该假设任何视频的每个副本都有一个唯一的
videoID
,因此每个
videoID
只能由一个客户为任何给定的
借出
;每个顾客可以是会员也可以是临时顾客,但不能两者兼而有之。@HannoBinder对不起,这就是我的意思,只是你的措辞要清楚得多。所以三元关系是最合适的,因为贷款之间没有区别,一次只能有一个实体借一个视频?谢谢你的帮助@philipxy!因此,从所提供的信息和所提供的两个选项中,最好的解决方案是二进制关系。