商店产品的类表继承:如何下订单

时间:2013-12-12 14:42:16

标签: mysql database-design e-commerce class-table-inheritance

我正在尝试创建一个电子商务/商店系统,我决定基于this great answer在SQL设计中选择类表继承设计。

现在我有了以下表结构:

product ( id [PK], name, description )
product_shirt ( id [PK], product_id [FK],  color, size, stock, price ) 
product_ring ( id [PK], product_id [FK], size, stock, price )
// maybe coming more

这适用于在网站上展示产品。但是,如果我想下订单,一些产品会如何运作?

如果我的产品有一个表,我可以将product_id作为外键分配给关系表,但是对于多个表,这似乎不再可能。是否可以使用类表继承?

我看了很多,大多数答案/教程似乎专注于产品的代表,但不是客户的订单。

1 个答案:

答案 0 :(得分:4)

product_idproduct_shirt删除字段product_ring,并将id字段的主键外键设为{{1} }。

您的product.id表格将包含order_item的外键。

如果您需要以给定订单提取有关产品的信息,请仅使用加入product.id进行查询。如果您需要特定产品的完整详细信息,请根据实际产品类型与productproduct_shirt加入。


示例:

product_ring