将 n 元关系映射到关系表

Mapping n-ary relationships to relational tables

像我包含的那样映射 n 元关系的正确方法是什么? 我会做这样的事情吗?

店铺(店铺, 地址, Phone 号码)

市场(产品 ID、产品名称、产品类型、价格)

销售额(订单 ID、数量、客户名称)

库存(产品 ID,数量)

据我了解,您从具有 "many" 的每一侧获取主键,并将其他属性作为外键包含在内。那么,你会这样管理 table 吗?

管理(订单 ID、产品 ID、商店名称)

根据图像...您还可以将 INVENTORY_ID 、STORE_NAME 和 PRODUCT_ID 放入 sales table ... 所以销售额会变成这样:

销售额(订单 ID、数量、客户名称、INVENTORY_IDPRODUCT_ID,STORE_NAME)

但是因为它让 table 有点乱......我们可以提取关系并为它创建一个新的 table 并且会变成这样......

管理(订单ID, STORE_NAME, PRODUCT_ID, INVENTORY_ID) 并记住此 table 的所有 primary_key 是所有列的组合。