2013-03-19 5 views
0

Im здание магазина, и каждый продукт имеет уникальный набор атрибутов.Таблица обновлений без первичного ключа

продукт дб выглядит следующим образом:

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 скрипт.

Есть ли простой способ изменить таблицу для поддержки обновления?

Im хорошо осведомлен о глупости, не имея уникальной колонки. Но я не уверен, как сделать эти две таблицы. Где я должен хранить уникальный идентификатор атрибутов?

+0

сообщение какой-то код? – hd1

+0

Вам нужно будет опубликовать свой PHP-код - обновление должно работать так же хорошо, как и с любым другим клиентом. –

+0

"* Кажется не работает *"? Что * делает * это «кажется» вместо этого? – eggyal

ответ

0

Поскольку 1 продукт имеет более 1 уникальных атрибутов, которые хранятся во второй таблице, вы должны использовать идентификатор продукта таблицы и хранить его во второй таблице с атрибутами.

Надеюсь, это то, что вам нужно?

2

Один выбор,

добавить первичный ключ "auto_incremented" в product_attributes стол ...

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

Это Id только для CRUD (Create Read Update Delete) задача.

Единственное отношение, вы можете иметь между вашими двумя таблицами является products_id которым позволяют вам иметь несколько product_attributes для одного product

+0

Конечно, но таблица продуктов не будет иметь никакого отношения к этому id? – Martin

+0

Нет, это просто, чтобы разрешить CRUD на этой таблице, используя этот идентификатор. Отношение - 'products_id'! – JoDev

+0

Хорошо. Я попробую! – Martin

Смежные вопросы