我正在尝试完成我的一门课程的一个问题,它围绕哪种关系是最佳解决方案 - 二元或三元。
关系示例
![enter image description here](https://i.stack.imgur.com/4ztBQ.png)
所以它是一个视频商店,具有三个实体——视频、会员和休闲。
会员和临时工可以借用视频,并记录借用日期。
三元关系是否是最合适的解决方案,因为会员和随意借用视频之间没有区别?
What您认为“借用”菱形代表的是三元(3 个实体)关系吗?它介于会员客户、视频、临时客户和贷款日期之间。 “会员在 LOANDATE 上从 CASUAL 借用了视频”? “视频是LOANDATE出生的休闲打卡会员”? “会员借用的 VIDEO 在 LOANDATE 到期,而 CASUAL 为空,或者 CASUAL 借用的 VIDEO 在 LOANDATE 到期,会员为空”?对于每个左右二元“借用”关系也是如此。
(我正在使用一个谓词(按列参数化的语句模板)来表达表的“含义”。当你插入一行时,你会得到一个主张(陈述)。每个表(基础或查询结果)都保存使其谓词成为真命题的行。选择关系运算符(连接、联合等)来交替地使用所需查询谓词的逻辑非终结符(AND、OR 等)来表达和计算谓词表达式。 )
该图有一个菱形。它必须代表 MEMBER、VIDEO 和 CASUAL 实体以及 LOANDATE 之间的关系。除了 AND 或其他较小借词的组合之外,似乎很难为三元借词想出一个明智的借词,不是吗?如果您想不出一个,那么这不是一个描述您情况的图表。我也想不出一个仅限于这三种实体的三元组。而二进制文件很容易理解。
PS我唯一的警告是:我给出的第三个选项实际上是数据库表中体现的典型关系。但这不仅仅是模型实体上的关系。它还涉及“空”值。如果我们考虑价值观之间的关系identify实体或不存在,那么我们就可以使用 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
不知道你们老师的用意是什么?但我怀疑他们没想到你会涉及 null。
PPS回复“二元关系是否会出现会员和休闲者可以同时借用同一个视频的问题?”我不确定你在想什么。但该关系仅包含从其语句模板生成真实语句的行。它描述了情况。它不能导致情况以某种方式发展。 “业务规则”(和物理!)限制了出现的情况。但您确实需要记录足够的信息来运营业务。 DBMS 可以获悉不可能的数据库状态,因此可以拒绝它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)