1

3つの主要なアイテムで構成される製品があるとします。製品はラップトップで、アイテムは次のとおりです。ネジ(ID、コード、説明)ボタン(ID、コード、説明)カバレッジ(ID、コード、説明、色)。

各ラップトップは、これらのアイテムの任意の組み合わせで構成されています。

  1. すべてを1つのテーブル「Materials」に入れ、「type」という属性を追加して各アイテムを区別することができますが、空の「color」値を持つ行が多数あります。

    私は専門化について考えました:マテリアル(ID、コード、説明)、そしてすべてがそのサブクラスです。ただし、ボタンとネジのクラスは、マザークラスと何ら変わりはありません。

    それで、あなたの考えは何ですか?

  2. 単価属性を追加したい。実際の価格が必要で、月ごとに古い価格の履歴を保持したい(つまり、各価格はMM / YYYYにバインドされています)。

    価格表を作成できます:

    prices (id, price, date)
    

    しかし、実際の=現在の価格を材料テーブルに保持する必要がありますか、それとも単に価格テーブルに保持する必要がありますか?

4

1 に答える 1

0
/* keep your general product specs here: */
PRODUCT
id primary key
type
code
description
standard_price


/* or add a subtype table for some of them: */
COVERAGE_PRODUCT
id pk fk PRODUCT
colour 


/* products are composed of other products: */
PRODUCT_STRUCTURE
part_of not null references product(id),
composed_of not null references product(id)
primary key (part_of, composed_of)

データウェアハウスに過去の価格を保持するか、product_priceテーブルを追加できます。この場合、製品から「standard_price」を削除してください。

PRODUCT_PRICE
product_id fk product(id)
from_date
price
to_date (nullable)
primary key (product_id, from_date)
于 2013-03-04T20:51:48.243 に答える