我需要存储具有不同属性(如长度或颜色)的类似产品,我应该使用不同的ID添加此产品,还是将一个产品添加到具有许多属性的产品中?
我需要按属性(4个红色靴子,3个蓝色等)查看产品数量的主要问题,并且需要在产品页面上实现属性选择器。
如果创建一个id,如何在购物车表中存储具有所选属性的属性以及如何管理数量?
如果创建多个ID,则可以轻松管理数量,但如何实现属性选择?
我想到了一些用于将产品ID与属性和属性值相关联的SKU。但是如何将所有人联系在一起?
答案 0 :(得分:1)
Tables
用于存储您拥有的任何数据。如果您需要有关这些条目的任何特定信息,则必须使用不同的queries
。例如,假设以下product
表:
+----+-------------+-------------+
| ID | ProductNAme | ProductType |
+----+-------------+-------------+
| 1 | Product A | Type A |
+----+-------------+-------------+
| 2 | Product B | Type A |
+----+-------------+-------------+
| 3 | Product C | Type B |
+----+-------------+-------------+
您可以通过撰写以下Type A
来获取query
商品的数量(查看This Link以获得更好的理解):
Select count(*) as CountOfProduct from Product where ProductType="Type A";
修改强>
您在评论中提到,一种产品可能有不同的类型和不同的数量。你可以在一张桌子上做到这一点,但看起来很混乱。如果您希望这种情况发生,您需要在两个名为**relationship**
和product
的表之间构建一个1-Many type
。
type
表可能是这样的:
| TYPE_ID | TYPE |
|---------|--------|
| 1 | Type A |
| 2 | Type B |
| 3 | Type C |
并且您的product
表可能是这样的:
| PRODUCT_ID | PRODUCTNAME | QUANTITY | TYPE_ID |
|------------|-------------|----------|---------|
| 1 | Product A | 3 | 1 |
| 2 | Product B | 2 | 1 |
| 3 | Product C | 1 | 2 |
| 4 | Product C | 5 | 3 |
**请注意type_id
是构建这两个表之间关系的外键。由于您可以拥有多个具有相同类型的产品(例如本例中的产品C),因此该表将是您的many
表,类型表将是您的one
表。因此,将foreign key
放入many
表后,您将建立one to many
关系。
现在,为了将这两个表组合(或换句话说,join
),您需要编写join
查询,如下所示:
select ProductName,quantity,Type from Product p
inner join type t on t.type_id=p.type_id
,结果将是您想要的:
| PRODUCTNAME | QUANTITY | TYPE |
|-------------|----------|--------|
| Product A | 3 | Type A |
| Product B | 2 | Type A |
| Product C | 1 | Type B |
| Product C | 5 | Type C |
答案 1 :(得分:0)