更新没有主键的表

时间:2013-03-19 13:45:29

标签: php mysql

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

产品db看起来像这样:

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?

2 个答案:

答案 0 :(得分:2)

一种选择,

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

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

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

您可以在两个表之间建立唯一的关系products_idproduct_attributes允许您只有product {{1}}

答案 1 :(得分:0)

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

希望这是你需要的吗?