1

私は現在、たくさんのアイテムを保持するデータベースを開発するつもりですが、カテゴリごとに1000から10,000のアイテムがあるので、どちらのデザインが良いのか疑問に思いました。

データベース設計#1

Login Details
--------------
-userID
-Username
-Password
- ETC....


User Settings
--------------
-userID
-Setting 1
-Setting 2
-Setting 3
- ETC....



Product Category
-----------------
-ID
-Name



ALL Items
-----------
-ItemID
-Name
-Description
-Price
-Info
- ETC....
-parentCategoryID

また

データベース設計#2

Login Details
--------------
-userID
-Username
-Password
- ETC....


User Settings
--------------
-userID
-Setting 1
-Setting 2
-Setting 3
- ETC....



Product Category
-----------------
-ID
-Name
-tableName



Electronics
-------------
-ItemID
-Name
-Desc.
-Price
- ETC....

Food
-------------
-ItemID
-Name
-Desc.
-Price
- ETC....


Books
-------------
-ItemID
-Name
-Desc.
-Price
- ETC....


Apparel
-------------
-ItemID
-Name
-Desc.
-Price
- ETC....



Others
-------------
-ItemID
-Name
-Desc.
-Price
- ETC....
4

2 に答える 2

2

オプション1が進むべき道です。

オプション2を使用した場合、さまざまな製品タイプをさまざまなテーブルに格納するため、さまざまな製品タイプについてデータベースにクエリを実行するたびに、さまざまなクエリを使用する必要があります。

ユーザーの保存は、製品の保存よりもはるかに問題が少ないです。価格は時間の経過とともに変化する可能性があるため、「products」テーブルから「price」フィールドを削除し、別のテーブル「pricelist」に保存することをお勧めします。このテーブルのフィールドは、product、price、fromdate(場合によってはtildate)になります。 。

于 2012-10-25T06:23:39.670 に答える
1

オプション2の場合、テーブルを識別するために文字列に依存する場合は、参照整合性がありません。

オプション1は、私の意見では、物事を行うためのよく実践された(正規化された)方法です。さらに、カテゴリごとに10000行を保持することでさえ、最新のデータベースにとって大したことではありません。

于 2012-10-25T04:32:46.033 に答える