繁体   English   中英

Relationship into table (ER-model into relational model)

[英]Relationship into table (ER-model into relational model)

我正在尝试将 ER 模型转换为关系型 model,然后再转换为 SQlite3 代码。

在 ER 模型中,我写了例如关系:

客户 - 有 - 订单

(其中 Customer 和 Order 是实体。Has 是关系)

我知道我需要将实体转换为表并将它们的属性转换为该表的字段

但是,我应该创建一个“订单”和“客户”实体之间“有”关系的表吗?

我应该,根据这篇文章: https://www.google.com/amp/s/www.geeksforgeeks.org/mapping-from-er-model-to-relational-model/amp/

问题归结为关系类型(一对一、一对多或多对多)。

快速回答:一般情况下,当关系类型为多对多时,我们只需要一个关系表**。

  • 对于1-to-11-to-many ,我们不必也不应该创建关系表。
  • 对于多对多,我们必须创建一个关系表。

例子:

例如,假设关系是一对多(一个客户可以有多个订单)。 然后,我们可以在“1”侧添加实体的主键 (pk) 作为“多”侧的外键 (fk)。

Customer: (<customer_id_pk>, <other_fields>)

Order:    (<order_id_pk>, <other_fields>, <customer_id_fk>)

在另一个例子中,假设这种关系是多对多的(客户可以有很多订单,并且许多客户可以出于某种原因共享一个订单)。 然后,我们将需要另一个表来表示关系。

Customer: (<customer_id>, <other_fields>)

Order:    (<order_id>, <other_fields>)

Customer_Order_Relationship: (<customer_id>, <order_id>)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM