首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多到一个关系可以用逻辑ER图表示吗?

多到一个关系可以用逻辑ER图表示吗?
EN

Stack Overflow用户
提问于 2020-04-30 22:08:54
回答 2查看 3.1K关注 0票数 2

我的任务有一个特别的问题,就是这样:

组成一套的每一种产品都由一家供应商提供,并得到一个独特的ID。产品总是作为一套产品的一部分出售,而不是单独出售。

因此,基于这一假设,许多产品创建了一个包(也称为set),但我不知道我是否正确,如果是的话,我如何以ER图的形式直观地显示多到一个关系。

我已经建立了我自己的概念和逻辑ER图,我只需要知道我是对还是错,以便我可以继续剩下的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-01 00:55:28

,这是作业的细目和我从中得到的:

组成一个集合的每个产品都由一个供应商提供,并被赋予一个唯一的ID。产品总是作为一套产品的一部分出售,而不是单独销售。

由此我知道我们有这样的实体:

  1. Product
  2. Supplier
  3. Package (Set)

您应该知道,每个实体都需要自己的主键。专业人士要么叫这个id,要么叫product_id。如果您将每个表的pk命名为“id”,特别是当它是一个简单的序列号时,则有一些ORM最适合在方框之外工作。

最好不要使用属性名来做您正在做的事情。在sql中,人们要么坚持大写,要么使用小写命名,而不是camelcase。另外,我建议您不要仅仅因为价格属性在Package表中就将其命名为pPrice。只需命名它的价格,因为它可以被称为Package.price,如果您需要区分它与其他一些表,其中也包含一个价格栏。

重要的是要理解的是包装和产品之间的关系是多到多的

一个产品可以是许多Packages.

  • One包的一部分,可以包含许多产品

为了创建多到多关系的实体,您需要一个位于两个表之间的表,并在其中包含两个表的外键。通常情况下,人们会选择他们认为占主导地位的东西--我可能会使用软件包,并将表命名为"PackageProduct“,以强化这样一种观念:这张桌子让我把产品包装在一起,然后销售或分发。

代码语言:javascript
复制
PackageProduct
--------------
id (pk)
package_id (foreign key to Package table)
product_id (foreign key to Product table)

您还需要一个供应商表,但是您被告知包和供应商之间的关系是一个包可以有一个并且只有一个供应商。

这是代码:在供应商和包之间建立一对多的关系。在执行此操作时,包中将有一个外键存储Supplier.id (或supplier_id)。

因此,最后,您应该拥有以下实体(表):

  1. Package
  2. Product
  3. Supplier
  4. PackageProduct

ERD

这是一个用"Relational“格式呈现的ERD,我发现它更具有描述性,因为连接的许多方面都使用众包,所以非常明显。

票数 2
EN

Stack Overflow用户

发布于 2020-04-30 23:59:24

根据您的描述,您的模式将有一对多的关系,即您的单个包包含许多产品。

您还可以找到您的ERD图。

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

https://stackoverflow.com/questions/61533595

复制
相关文章

相似问题

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