sqlite 关系到表(ER模型到关系模型)

xdnvmnnf  于 2023-01-05  发布在  SQLite
关注(0)|答案(1)|浏览(166)

我正在尝试将ER模型转换为关系模型,然后转换为SQlite3代码。
在ER模型中,我将关系写为:
客户-有-订单
(其中,Customer和Order是实体。Has是关系)

我知道我需要将实体转换为表,并将其属性转换为该表的字段
但是,我是否应该创建一个“Order”和“Customer”实体之间的“has”关系表?

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

jjjwad0x

jjjwad0x1#

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

    • 快速解答:**通常,只有当关系类型为多对多时,**才需要关系表。
  • 对于1对11对多,我们不必也不应该创建关系表。
  • 对于多对多,我们必须创建一个关系表。
    • 示例:**

例如,假设关系是1对许多(一个客户可以有许多订单),那么我们可以将实体的主键(pk)添加到"1"端,作为外键(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>)

相关问题