繁体   English   中英

更新没有主键的表

[英]Update table without primary key

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

产品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?

一个选择,

主键 “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提供少量product_attributes

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

希望这是你需要的吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM