首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拍卖交易的ER图建模

拍卖交易的ER图建模
EN

Stack Overflow用户
提问于 2018-09-16 17:33:12
回答 1查看 4K关注 0票数 1

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

我正在做一个练习,我想出了两种解决方案,我认为可能有效,但我不确定哪一种是正确的,它们之间的区别是什么。

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

卖方可以出售一件物品,买方可以出价购买一件物品。

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

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

我处理该交易的两种方法如下:

解决方案1

将交易作为买方、卖方和物品之间的三方关系,并将反馈属性添加到关系中。

解决方案2

在项目中直接插入反馈和获胜者ID。(一份清单不能卖出更多的商品)

提前感谢您的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-17 03:29:00

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

代码语言:javascript
复制
-- "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,“买方B与卖方S进行了一次带有反馈F的项目I的交易”,当且仅当“I有胜利者B&反馈F或没有胜利者&B是空&F是空的”&B是空&F在2。这也意味着一个设计中的每个实体/关系表都可以表示为另一个设计中的查询。这种等价性的关键是基数,比如交易与胜利者的项目是1:1。

PS在2,而不是存储胜利者id,你可以只是存储是否有一个赢家/事务。你明白为什么吗?(你可以查询胜利者。)

(确定关系/表的成员资格标准((特征)谓词)。探索如何查询和约束每个设计。此外,还探索哪些更改/扩展可能会对一个或另一个更有利。)

PS“拥有”没有任何意义。选择关系名称,描述参与实体是如何关联的。最好是,它是一个明确的语句模板的缩写,当给出实体/属性的is /值时,该模板会生成一个语句。“项目一是C类成员”。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52356727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档