0

我正在建立一家商店,每种产品都有一组独特的属性。

产品数据库如下所示:

products_id, relation_id, product_name, description, 
price, glass, shipping, img, cat, subcat, model

由于每个产品都有几个(约 40 个)该产品独有的不同属性,因此我只创建了第二个表来存储它们。

products_id, att_name, att_val, att_head, att_standard, att_order

这很好用,因为永远不会有两个唯一的行。然而,问题是当我需要修改属性内容时。

使用 MySQL Workbench 我可以使用类似的东西修改一行

UPDATE product_attributes SET att_val='1500' WHERE products_id='112' AND att_head='threshold'

但是,当我从我的 php 脚本更新时,这似乎不起作用。

有没有一种简单的方法来修改表以支持更新?

我很清楚没有一个独特的专栏是愚蠢的。但我不知道如何使这两个表相关。我应该在哪里存储属性的唯一 ID?

4

2 回答 2

2

一种选择,

主键“auto_incremented”添加到product_attributes表中...

ALTER TABLE `product_attributes` ADD  `id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST

ID仅用于 CRUD (创建读取更新删除)任务。

您可以在两张桌子之间建立的唯一关系是允许您有products_id几张桌子product_attributesproduct

于 2013-03-19T13:50:39.030 回答
0

由于 1 个产品具有超过 1 个您存储在第二个表中的唯一属性,因此您应该使用表产品的 ID 并将其与属性一起存储在第二个表中。

希望这是你需要的?

于 2013-03-19T13:48:58.100 回答