简体   繁体   中英

Update table without primary key

Im building a shop and each product has a unique set of attributes.

the product db looks like this:

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

Since every product has several (~40) different attributes unique to that product only ive created a second table to store them.

products_id, att_name, att_val, att_head, att_standard, att_order

This works fine, because there will never be two unique rows. The problem, however, is when i need to modify the attributes content.

using MySQL Workbench i can modify a row using something like

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

This however, doesn't seem to work when i update from my php script.

Is there an easy way to modify the table to support updating?

Im well aware of the stupidity not having an unique column. But im not sure how to make the two tables relate. Where should i store the unique id of the attributes?

One choice,

add a primary key "auto_incremented" into the product_attributes table...

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

This Id is just for CRUD (Create Read Update Delete) task.

The only relation you can have between your two tables is the products_id wich allow you to have few product_attributes for one product

Since 1 product has more than 1 unique attributes that u store in a second table, you should use the ID of the table product and store it in the second table with the attributes.

Hope this is what u need?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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