1

商品と取り扱い店舗を関連付けるデータベースを設計しています。

店舗の多くは、互いに同じ製品を扱っています。また、当然のことながら、店舗ごとに多くの種類の製品が存在します。

表を作成するための最良の方法について調査を試みましたが、オンラインで読んだすべてのリソースは技術的に疲れ果てており、論理的に形式化されているため、彼らが言っていることを直感的に理解する能力が失われています.

ジャンクションテーブルを使用する必要があると人々が言うのを聞いていますが、それが私の場合にどのように適用されるかわかりません。

私がやりたかったのは、「ストア」カテゴリの行を1つ作成し、「product_1」、「product_2」、「product_x」などの行を個別に作成して、ストアが販売する各製品をリストすることでしたが、よくわかりませんフォームが良ければ。

さらに、店舗によっては 50 個の商品がある場合があり、これは 50 行が必要になることを意味します。これを回避する方法があるかどうかはわかりません。

最終的に、私の質問は、標準的な慣習により、この種の関係にとって理想的なデータベース構造はどのようなものでしょうか?

4

1 に答える 1

4

私は3つのテーブルを持っています。店舗 [name, id & info] の 1 つ。アイテム [name, id & info] 用の 1 つ。2つの[関係ID、ストアID、アイテムID]をリンクするための1つ。

これにより、リレーションシップ テーブルを更新しなくても、ストアとアイテムのデータを変更できます。

したがって、ストア内のアイテムが必要な場合は、リレーション テーブルでストア ID に一致するアイテムを検索します。逆に、アイテムを持っているストアが必要な場合は、リレーション テーブルでアイテム ID を検索し、そのアイテムを運ぶストア ID を返します。

最低限の必需品 例:

STORE:
*********************
storeID    storeName
*********************
1          store1
2          store2
3          store3

ITEMS:
*********************
itemID    itemName
*********************
1          item1
2          item2
3          item3

RELATIONS:
*********************
storeID    itemID
*********************
1          1
1          2
2          1
2          3
3          2
3          3

したがって、store1 にあるアイテムを見つけるには、1 である storeID を取得し、関係テーブルを検索して、ストア ID = 1 を持つ行を見つけます。これにより、行 1 と 2 が返され、store1 にアイテム 1 と 2 があることがわかります。同様に、item2 の ID である 2 を取得する、どの店が item2 を運ぶかを見つけるには、リレーション テーブルで itemID = 2 を検索します。

于 2012-10-27T19:35:29.000 に答える