0

私はショップを構築しており、各製品には独自の属性セットがあります。

製品データベースは次のようになります。

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

すべての製品には、その製品に固有のいくつか (~40) の異なる属性があるため、それらを格納するための 2 つ目のテーブルを作成しただけです。

products_id, att_name, att_val, att_head, att_standard, att_order

2 つの一意の行が存在することはないため、これは正常に機能します。ただし、問題は、属性の内容を変更する必要がある場合です。

MySQL Workbench を使用して、次のようなものを使用して行を変更できます

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

ただし、phpスクリプトから更新すると機能しないようです。

更新をサポートするようにテーブルを変更する簡単な方法はありますか?

ユニークな列がない愚かさをよく知っています。しかし、2 つのテーブルを関連付ける方法がわかりません。属性の一意の 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 (Create Read Update Delete)タスク専用です。

2 つのテーブル間で持つことができる唯一の関係は、1 対 1 でproducts_id数を保持できるようにすることです。product_attributesproduct

于 2013-03-19T13:50:39.030 に答える
0

1 つの製品には、2 番目のテーブルに保存する固有の属性が複数あるため、製品テーブルの ID を使用して、属性とともに 2 番目のテーブルに保存する必要があります。

これがあなたが必要とするものであることを願っていますか?

于 2013-03-19T13:48:58.100 に答える