我应该为每个子产品做一行,但每个产品都有不同的子产品集。 或者将noSql数据库用于此类数据
更好product
productName
productDescription
productDimension
subProducts
1
2
3
price
感谢您的帮助
答案 0 :(得分:0)
你可以使用MySQL关系来做到这一点。通过使用外键来关联表。你应该有2个表。 1为您的主要产品,另一个为您的子产品。
产品表:
产品
ID 名称
子产品表:
ID parent_product_id 名称
访问此链接。 https://dev.mysql.com/doc/workbench/en/wb-foreign-key-relationships.html
答案 1 :(得分:0)
你会得到参考 Design database for category, subcategory and associated books 喜欢: 表类别 ID 名称 parent_category
答案 2 :(得分:0)
有几种方法可以做到这一点。您可以在单独的表中包含子产品,并在主产品表中使用对产品ID的FOREIGN KEY引用。
如果产品属性有些类似,您也可以将它们放在同一个表中,但使用parentID列来引用父产品。然后,即使它是同一个表,您也可以使用FOREIGN KEY来强制执行约束。非子产品的产品可以使用parentID为NULL。
例如:
ALTER TABLE products ADD FOREIGN KEY (parentID) REFERENCES products (productID) ON UPDATE CASCADE ON DELETE CASCADE;
例如:
INSERT INTO products VALUES ('p1', 'Product 1', '55 dm3', 59.99, 1, NULL);
...
INSERT INTO products VALUES ('p1-1', 'Subproduct 1.1', '8 dm3', 19.99, 4, 1);
...
mysql> SELECT * FROM products WHERE parentID = 1;
+-------------+--------------------+------------------+-------+-----------+----------+
| productName | productDescription | productDimension | price | productID | parentId |
+-------------+--------------------+------------------+-------+-----------+----------+
| p1-1 | Subproduct 1.1 | 8 dm3 | 19.99 | 4 | 1 |
| p1-2 | Subproduct 1.2 | 4 dm3 | 19.99 | 5 | 1 |
+-------------+--------------------+------------------+-------+-----------+----------+
2 rows in set (0.00 sec)
如果你想要牺牲关系表的优势而不是使用更灵活的JSON数据,那么MySQL 5.7也支持它。看看https://dev.mysql.com/doc/refman/5.7/en/json.html
例如,您可以拥有一个代表产品的JSON对象,该产品包含一个子产品对象数组。