まず第一に、私の悪い英語のheheheに申し訳ありませんが、助けが必要です。ミニアマゾンのようなウェブサイトのデータベースを設計したいと思います。このデータベースは、あらゆる種類の製品(TV、車、コンピューター、本、ビデオゲーム、鉛筆、テーブル、ズボンなど)を管理しますが、たとえば、製品の場合、各製品にはいくつかのプロパティ(インデックスが作成される)が必要です。は本であり、プロパティはジャンル、年、著者のようなものになります。製品がテレビの場合、プロパティはサイズ、色、年などになります。また、製品が自動車の場合、プロパティは、たとえば、年、色、モデルなどになります。だから、これは私の考えです:
- 部門(電子機器、本など)を管理するための1つのテーブル
- 部門のカテゴリを管理するための1つのテーブルで、このテーブルは前のテーブルの子になります。部門が電子機器の場合、ここにオーディオ、テレビ、ビデオ、ゲームがあります...(各カテゴリは1つの部門に属し、関係は1つの部門から多くのカテゴリに属します)
- 製品を管理するための1つのテーブル(各製品は1つのカテゴリに属し、関係は多くの製品に対する1つのカテゴリです)
- プロパティ(年、色、ジャンル、モデルなど)を管理するための1つのテーブル
- 製品をプロパティに関連付けるための1つのテーブル、このテーブルはProductPropertiesと呼ばれます
これが最善の方法かどうかはわかりません。データベースは巨大になります。MySQLでデータベースを開発します。しかし、これは最善の方法ではないと思います。この記事では、「データベースの抽象化:集約と一般化」http://cs-exhibitions.uni-klu.ac.at/index.php?id=433について説明しています。一般的なオブジェクト(私は思う)ですが、この方法は古い(70年代)です。この記事のhttp://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/のセクション「すべてのドメイン値を保持する1つのテーブル」では、これは間違った方法であると述べています...テーブルProductPropertiesのためにこれをすべて言っていますが、このテーブルを作成するのか、製品の種類ごとに特定のテーブルを作成するのかはわかりません。
何か提案はありますか?それとももっと良いアイデアがありますか?
よろしくお願いします!!!