ある種の在庫システムでは、特定のプロパティを持つitem_type
を作成できます。プロパティの量はタイプごとに変わります。これについてはどのようにDBStructureを使うべきですか?ただXの量をpropertyX
フィールドにするか、この方法で柔軟性を実現する他の方法がありますか?さまざまな量のフィールドを持つデータベース構造の設計
noteテーブルを自動的に作成したくないのは、管理可能ではないためです。
ある種の在庫システムでは、特定のプロパティを持つitem_type
を作成できます。プロパティの量はタイプごとに変わります。これについてはどのようにDBStructureを使うべきですか?ただXの量をpropertyX
フィールドにするか、この方法で柔軟性を実現する他の方法がありますか?さまざまな量のフィールドを持つデータベース構造の設計
noteテーブルを自動的に作成したくないのは、管理可能ではないためです。
は、nをリンクされているプロパティテーブルを持っています。
これを行うための通常の方法は、この(擬似-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)を持つことができます項目ごと
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:
プロパティはどのように見えますか? – hatchet
あなたはいくつのアイテムタイプを持っていますか? – Milhous
プロパティはINT、VARCHAR、またはTEXTのように見え、2からおそらく100の異なるプロパティまで変化します(無限の希望) – Sander