2011-07-20 8 views
2

ある種の在庫システムでは、特定のプロパティを持つitem_typeを作成できます。プロパティの量はタイプごとに変わります。これについてはどのようにDBStructureを使うべきですか?ただXの量をpropertyXフィールドにするか、この方法で柔軟性を実現する他の方法がありますか?さまざまな量のフィールドを持つデータベース構造の設計

noteテーブルを自動的に作成したくないのは、管理可能ではないためです。

+0

プロパティはどのように見えますか? – hatchet

+0

あなたはいくつのアイテムタイプを持っていますか? – Milhous

+0

プロパティはINT、VARCHAR、またはTEXTのように見え、2からおそらく100の異なるプロパティまで変化します(無限の希望) – Sander

答えて

3

は、nをリンクされているプロパティテーブルを持っています。

4

これを行うための通常の方法は、この(擬似-SQL)のようなものです:

create table property_types (
    property_id int primary key, 
    name varchar, 
    -- more info here 
); 

create table items (
    item_id int primary key, 
    -- your item table 
); 

-- this table links a property value with an item 
create table item_properties (
    item_id int, 
    property_id int, 
    property_value varchar, 
    foreign key fk_item (item_id) references items (item_id), 
    foreign key fk_property (property_id) references properties (property_id) 
); 

オプションで、すべてのプロパティは一度しか設定されていることを確認するためにitem_properties上で一意制約(のitem_id、PROPERTY_ID)を持つことができます項目ごと

1

Itemsテーブルを参照する各プロパティを持つPropertiesテーブルを作成すると、動的なプロパティ数を達成できます。例えば

このように、静的な数のプロパティ、または同じプロパティに限定されません。 Propertiesテーブルは本質的にはItemsテーブルとの強い結びつきを持つ名前/値ペアの辞書テーブルです。したがって、各ITEM_TYPEは0持つことができます

TABLE item_type (
    item_type_id INT, 
    ...) 

TABLE properties (
    property_id INT, -- primary key 
    item_type_id INT, -- foreign key for item_type 
    key NVARCHAR(max), -- adjust type to your needs 
    value NVARCHAR(max)) 

:n個のプロパティを、このようなITEM_TYPEテーブルに1:

関連する問題