0

こんにちは、e コマース Web サイト用のデータベースを設計しようとしていますが、これを正しく行う方法が見つからないようです。 スキーマ

問題は製品に現れます。私は 66 種類の製品を持っていますが、そのほとんどが異なるフィールドを持っています。ID を作成する必要がありますが、どちらもあまり実用的ではないようです。

オプション A:

最初は商品タイプごとにテーブルを作ろうと思ったのですが、66テーブルになり管理が大変です。Product_Notebook および Product_NotebookBag テーブルを作成する作業は既に開始しています。そして、立ち止まって少し考えてみましたが、この解決策はあまり良くありません。

オプション B

もう少し考えた後、説明と呼ばれる別のフィールドにデータを格納するオプション B を思いつきました。例えば:

"Color : Red & Compatibility : 15.6 & CPU : Intel"

このアプローチでは、文字列を取得して、データベースから取得した後に操作できます。

このアプローチもあまり良いアイデアではないことを私は知っています。そのため、より実用的なアプローチを求めています。

4

2 に答える 2

1

StackOverflowでこの質問に対する私の答えを参照してください。あなたの状況では、エンティティ属性値(EAV)を使用することをお勧めします。

リンクされた回答で説明しているように、EAVは、多くの正当な理由から、ほとんど常に回避されるべきです。ただし、オンラインカタログの製品属性の追跡は、EAVの問題が最小限であり、メリットが大きい1つのアプリケーションです。

于 2012-12-23T20:17:54.847 に答える
1

ProductProperties テーブルを作成し、可能なすべてのフィールドをそこに配置するだけです。(実際には Products テーブルにさらにフィールドを追加することができます)

次に、製品をリストするときに、必要なフィールドを使用するだけです.

確かに、共通の分野もたくさんあります。

ところで、データを配列に格納することを考えている場合 (オプション B?)、後で後悔します。そのようにテーブルを簡単にソートすることはできません。

また、そのオプションは、特定の特性によって特定のアイテムを見つけることを困難にします.

于 2012-12-23T20:01:37.847 に答える