Database design 拍卖交易的ER图建模

Database design 拍卖交易的ER图建模,database-design,relational-database,entity-relationship,entity-relationship-model,Database Design,Relational Database,Entity Relationship,Entity Relationship Model,我正在研究ER图,我仍然对它的某些方面感到困惑 我正在做一个练习,我提出了两个我认为可能有效的解决方案,但我不确定哪一个是正确的,以及它们之间的差异是什么 我试图模拟的问题是一个在线拍卖系统,成员可以是买家和卖家(他们有共同的属性,比如邮件地址、姓名和密码)。卖方还有一个属性银行账户,买方有一个属性发货地址。所以我把它画成一个不相交的推广 卖家可以出售商品,买家可以出价购买商品 项目有一个类别,可以有一个子类别 我现在面临的疑问是: 在拍卖结束时,出价最高的投标人为中标人,卖方和买方之间的交易可

我正在研究ER图,我仍然对它的某些方面感到困惑

我正在做一个练习,我提出了两个我认为可能有效的解决方案,但我不确定哪一个是正确的,以及它们之间的差异是什么

我试图模拟的问题是一个在线拍卖系统,成员可以是买家和卖家(他们有共同的属性,比如邮件地址、姓名和密码)。卖方还有一个属性银行账户,买方有一个属性发货地址。所以我把它画成一个不相交的推广

卖家可以出售商品,买家可以出价购买商品

项目有一个类别,可以有一个子类别

我现在面临的疑问是: 在拍卖结束时,出价最高的投标人为中标人,卖方和买方之间的交易可以继续进行。买方和卖方还可以记录交易的反馈(评级+评论)

我的两种交易方法如下:

解决方案1

使交易成为买方、卖方和项目之间的三方关系,并将反馈属性添加到关系中

解决方案2

在项目中直接插入反馈和获奖者ID。(无法通过单个列表销售更多项目)


提前感谢您的帮助

您没有确切说明如何填充实体和关系集/表。直到你这样做了,你才真正给出一个设计。对此做出合理的假设&约束,似乎这两种设计都可以记录您的情况。对于2来说,工作需要(类似)Winner_ID的域是买方ID的域加上一些不能是买方ID的值。SQL通常使用NULL表示这种类型的哨兵值

-- "I ids an item"
Item_1(I)
-- "buyer B makes a transaction with seller S for item I with feedback F"
MakesATransaction_1(B, S, I, F)

-- "item I has either winner B & feedback F or no winner & B is null & F is null"
Item_2(I, B, F)
您可以看到,它们可以记录相同的情况,因为对于所有B、I和F,[对于某些S,在1中,“买方B与卖方S就项目I进行交易,反馈F”],当且仅当在2中[“项目I有赢家B和反馈F或没有赢家B和F为空”&B为空和F为空]。这也意味着一种设计中的每个实体/关系表都可以表示为另一种设计中的查询。这种等价性的关键是基本原则,如交易与赢家项目的比例为1:1

PS In 2,而不是存储赢家id,您可以只存储是否有赢家/交易。你明白为什么吗?(A:您可以查询优胜者。)

(确定关系/表的成员资格标准((特征)谓词)。探索如何查询和约束每种设计。同时探索哪些更改/扩展可能会对其中一种更有利。)

PS“Has”没有任何意义。选择描述参与实体关联方式的关系名称。最好的方法是,简写一个清晰的语句模板,当为实体/属性提供is/值时,该模板会生成一个语句。“项目I为C类成员”


为什么是箭?它们是多余的。

请。仅为方便补充文本和/或为文本中无法给出的内容使用图像。不要给出没有图例/key.PS的图表。但你的问题到底是什么?我基本上是在试图解决问题,在最后两点上耽搁了很长一段时间,并做了许多不同的设计,我发布的两个是我认为更有意义的。请通过整合的帖子编辑澄清,而不是评论。PS标准语法。PS“基本上”并不是在清晰、完整、精确的细节背景下,它所介绍或总结的内容基本上没有任何意义。非常感谢所有的好评论,刚刚开始,对此有很多疑问。我会努力修好的。我主要是想得到这个概念,因为我总是倾向于在图中创建额外的实体。重新查找关系,查找谓词——由列参数化的语句模板,数据库根据这些列来说明情况。(表中的行表示真理,缺行表示谬误)找到足够的行来描述你的情况。当一些可以通过其他的组合表达时(部分取决于约束),只保留一些。请参阅我关于数据库设计和表谓词的回答。最好的ER方法是对象角色建模。但ER对实体和关系进行了不必要的限制性区分。关系模型只是n元关系。