我想知道这是否是为价格超过1的商品构建表格的最佳方式。每个产品都由其model_number标识。我应该在每个卖家的model_number之前使用前缀吗?我不能使用model_number作为主键。例如:
seller_product_id model_number seller price
SELLER_1_MODEL_NUMBER MODEL_NUMBER seller_1 9.99
SELLER_2_MODEL_NUMBER MODEL_NUMBER seller_2 19.99
答案 0 :(得分:2)
为了松散耦合,我建议您构建单独的Items
和Price
表,并使用另一个table(称为Junction table)Item_Price
根据您的喜好将许多物品映射到许多价格。
基本上,它将Item
及其itemId链接到带有priceId的Price
,并将此链接存储在Item_Price
itemPriceId(或任何您称为第3主键)
这是一个示例图编辑:抱歉上一个图表。
这里有一个3个表的SQL DDL示例,以及2个将项目与价格关联,卖方与项目关联的联结表。
CREATE TABLE Item (
item_id int PRIMARY KEY,
..
..
)
CREATE TABLE Price (
price_id int PRIMARY KEY,
..
..
)
CREATE TABLE Seller (
seller_id int PRIMARY KEY,
..
..
)
-- This is the junction table for Item to Price mapping.
CREATE TABLE Item_Price (
item_id int REFERENCES Item (item_id),
price_id int REFERENCES Price (price_id),
PRIMARY KEY (item_id, price_id)
)
-- This is the junction table for Seller to Item mapping.
CREATE TABLE Seller_Item (
seller_id int REFERENCES Seller (seller_id),
item_id int REFERENCES Item (item_id),
PRIMARY KEY (seller_id, item_id)
)
答案 1 :(得分:2)
一个属性有很多属性?听起来像one-to-many
关系...去新表有外键可以帮助你。
Products
prod_id (PK) | model_no
Sellers
seller_id(PK)|seller_name
Pricing
price_id (PK)|price|prod_id (FK) | seller_id(FK)
答案 2 :(得分:0)
是您可以在每个卖家的model_number之前添加前缀。
如果你还有东西,请告诉我更清楚你的问题