将 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_ID、PRODUCT_ID,STORE_NAME)
但是因为它让 table 有点乱......我们可以提取关系并为它创建一个新的 table 并且会变成这样......
管理(订单ID, STORE_NAME, PRODUCT_ID, INVENTORY_ID)
并记住此 table 的所有 primary_key 是所有列的组合。
像我包含的那样映射 n 元关系的正确方法是什么? 我会做这样的事情吗?
店铺(店铺, 地址, Phone 号码)
市场(产品 ID、产品名称、产品类型、价格)
销售额(订单 ID、数量、客户名称)
库存(产品 ID,数量)
据我了解,您从具有 "many" 的每一侧获取主键,并将其他属性作为外键包含在内。那么,你会这样管理 table 吗?
管理(订单 ID、产品 ID、商店名称)
根据图像...您还可以将 INVENTORY_ID 、STORE_NAME 和 PRODUCT_ID 放入 sales table ... 所以销售额会变成这样:
销售额(订单 ID、数量、客户名称、INVENTORY_ID、PRODUCT_ID,STORE_NAME)
但是因为它让 table 有点乱......我们可以提取关系并为它创建一个新的 table 并且会变成这样......
管理(订单ID, STORE_NAME, PRODUCT_ID, INVENTORY_ID) 并记住此 table 的所有 primary_key 是所有列的组合。