0

ルックアップ テーブル - 一意の行 ID

他のルックアップテーブルは、行に ID を与え、その ID を ID を持つ別のテーブルに入れ、それらを参照する可能性のあるいくつかのテーブルにこれらの ID を追加し、まだルックアップテーブルを作成しているのを見たことから、意味がありません。より多くのIDを使用します(これは、私が見つけることができるすべての例のようです)私が行ったことはこれです:

product_item - table
------------------------------------------
id | title   | supplier   | price 
1  | title11 | suuplier1  | price1

など、さらに多くのアイテムが含まれます(必ず取得してください)

product_feature - table
--------------------------
id | title    | iskeyfeature 
1  | feature1 | true




feature_desc - table
-----------------------------
id | title | desc
1  | desc1 | text description





 product_lookup - table
    item_id | feature_id | feature_desc
    1       | 1          | 1
    1       | 2          | 2
    1       | 3          | 3
    1       |64          | 15 

(これらはルックアップでのみ参照する必要があるため、id はアイテムごとに複数にすることも、機能ごとに複数のアイテムにすることもできます)

すべての機能行または説明行に item_id を追加せずにやりたいことは、ルックアップ テーブルの同じ行で ID が参照されている複数のテーブルから列のみを取得することです。item_id しか知らない場合、ルックアップ行から参照されているすべての列を選択できるかどうかを知りたいです。同じ行で列が参照されているItem_id = 1すべての行を返します。item_id = 1すべてのアイテムは複数の機能を持つことができ、すべての機能は複数のアイテムに関連付けることができます。これは、単一の既知の値からこのクエリを構築する方法のパターンを正しく取得できれば問題ありません。

任意の支援または方向性をいただければ幸いです。私はphpmyadminを使用していますが、これはいくつかのphp voodooで簡単になると確信しています。チュートリアルなどからmysqlを学んでおり、sqlで直接行う方法を知りたいです。

4

1 に答える 1

0

列に NULL 値を持つことは、この設計につながる主要な懸念事項ではありません。これは、MySQL が恥ずべきことになる、将来的に新しい属性列を追加する際の問題です。

アイテムに関するすべてを 1 行で返すクエリを作成する場合は、feature_id ごとに product_lookup テーブルに LEFT OUTER JOIN を戻す必要があります。これは、スタック オーバーフローに関する mysql の質問の約 10 件ごとであるため、大量の例を見つけることができるはずです。

于 2012-09-14T16:07:18.620 に答える