-1

まず第一に、私の悪い英語のheheheに申し訳ありませんが、助けが必要です。ミニアマゾンのようなウェブサイトのデータベースを設計したいと思います。このデータベースは、あらゆる種類の製品(TV、車、コンピューター、本、ビデオゲーム、鉛筆、テーブル、ズボンなど)を管理しますが、たとえば、製品の場合、各製品にはいくつかのプロパティ(インデックスが作成される)が必要です。は本であり、プロパティはジャンル、年、著者のようなものになります。製品がテレビの場合、プロパティはサイズ、色、年などになります。また、製品が自動車の場合、プロパティは、たとえば、年、色、モデルなどになります。だから、これは私の考えです:

  1. 部門(電子機器、本など)を管理するための1つのテーブル
  2. 部門のカテゴリを管理するための1つのテーブルで、このテーブルは前のテーブルの子になります。部門が電子機器の場合、ここにオーディオ、テレビ、ビデオ、ゲームがあります...(各カテゴリは1つの部門に属し、関係は1つの部門から多くのカテゴリに属します)
  3. 製品を管理するための1つのテーブル(各製品は1つのカテゴリに属し、関係は多くの製品に対する1つのカテゴリです)
  4. プロパティ(年、色、ジャンル、モデルなど)を管理するための1つのテーブル
  5. 製品をプロパティに関連付けるための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のためにこれをすべて言っていますが、このテーブルを作成するのか、製品の種類ごとに特定のテーブルを作成するのかはわかりません。

何か提案はありますか?それとももっと良いアイデアがありますか?

よろしくお願いします!!!

4

3 に答える 3

2

1. 部門を管理するための 1 つのテーブル (電子機器、本など) 2. 部門のカテゴリを管理するための 1 つのテーブル。このテーブルは前のテーブルの子になります。部門がエレクトロニクスの場合、オーディオ、テレビ、ビデオ、ゲーム... (各カテゴリは 1 つの部門に属し、関係は 1 つの部門と多くのカテゴリです)

なんで?階層を形成する 1 つのテーブル、カテゴリ。より柔軟に。

3.製品を管理するための1つのテーブル(各製品は1つのカテゴリに属し、関係は1つのカテゴリと多くの製品です)

なんで?ここで m:n を許可します。多くのカテゴリの製品。

これが最善の方法かどうかはわかりません。データベースは巨大になります

ああ、いいえ。ごめん。はい、自明ではありません。ヒュー?いいえ、ヒューのアイデアを得るために-私はデータベースを持っており、特定のテーブルに1日あたり12億行を追加しています。平均して。これは大きいです。100.000 個のアイテムが得られますか? 言及する価値さえありません。

于 2010-11-27T23:01:08.713 に答える
1

Pablo89 さん、あなたが求めていることの説明は、SQL Server 用の AdventureWorks データベースの機能に非常に近いものです。Web アプリケーションから BI へのレポート作成まで、AdventureWorks on the Web の使用例は多数あります。

SQL Server Express 2008 R2 をダウンロードしてインストールします。上記製品のサンプル データベースをダウンロードしてインストールします。AdventureWorks のデータベース設計を調べます。

投稿する質問の例として、AdventureWorks を使用してください。

私は SQL Server を使用しているため、AdventureWorks を使用しています。他のデータベース製品よりも優れているとは言いませんが、AdventureWorks を知っているからです。

于 2010-11-28T14:05:51.400 に答える