似ていないアイテムの在庫用のデータベースを作成しています。たとえば、私は自動車、エンジン、キャブレターを持っているかもしれません。
アイテムの種類ごとに固有の属性があり、一意に識別される (別名「シリアル化された」) アイテムもあれば、そうでないものもあります。
属性は、たとえば次のようになります。
自動車
- シリアルナンバー
- 色
- ドア数
- 伝送タイプ
エンジン
- シリアルナンバー
- シリンダー数
- 変位
キャブレター(シリアル化されていません)
- バレル数
- メーカー
もちろん、私は自分が持っている各タイプのアイテムの数を判断できる必要があります。トランスミッション、タイヤ、ラジオ、ハンドルなどを持ち始めるとアイテムの種類が増えるので、種類ごとに表を作成したくありません。
このような異種の在庫に対処するために私が見た 1 つの方法は、テーブルを持つことですitem
が、テーブルも持つことattribute
です。次のようになります。
**表:項目**
- (キー) itemType (「自動車」、「エンジン」などを含む itemTypes のテーブルにリンクされています。
- (キー) シリアルナンバー
- (すべての itemTypes に共通するその他のフィールド)
**テーブル:属性**
- (キー) attributeType ("color" などの attributeTypes のテーブルにリンク)
- (キー) itemType ( item 内の itemType にリンク)
- (キー) serialNumber (アイテムの serialNumber にリンク)
- attributeValue (attributeType が「color」の場合、これは「red」、「blue」などの可能性があります)
これがもたらす課題の 1 つは、シリアル化されていないアイテムを扱うことです。この構造では 35 個のエンジンがあることを判断するのは簡単ですが、52 個のキャブレターがあることはどのように表せますか? それらをシリアル化する必要はありません。
もちろん、これが異種インベントリ用のデータベースを構築する唯一の方法ではありません。何を使用したことがありますか、または他にどのようなアイデアがありますか?
ご協力いただきありがとうございます。