1

現在、在庫を管理するためのアプリケーションを作成しています。私たちは非常に頻繁に商品を受け取りますが、通常は賞味期限や価格が異なります。例:

RECEIPT    PROVIDER     PRODUCT       PRODUCT EXPIRATION DATE    PRICE   QUANTITY
2125       IQT          PLASTIC BAG   10/21/2012                 2.35    30
2126       MDU          PLASTIC BAG   05/03/2012                 2.45    60
2127       PRADO        PLASTIC BAG   10/21/2012                 2.30    10


PRODUCT    NAME          EXPIRATION DATE   PRICE  QUANTITY
1001       PLASTIC BAG   10/21/2012        2.35   30
1001       PLASTIC BAG   05/03/2012        2.45   50
1001       PLASTIC BAG   10/21/2012        2.30   10

私の質問は、EXPIRATION DATE と PRICE の主キーも作成して、さまざまなパラメーターで製品を登録できるようにする必要があるかどうかです。または、PRODUCT ID と RECEIPT ID の二重の PK を作成する必要があります。

4

1 に答える 1

2

ゆっくりと変化するディメンション テーブルの複合キーは許容できると思います。製品の価格が複合キーの一部であることに同意しません。(ProductID, ExpirationDate) で十分です。代わりにアーカイブ テーブル (Product_Archive など) を実装し、Product テーブルに現在のレコードのみを保持すると主張する人もいるかもしれません。

主キーの SKU、UPC、または PLU の代わりに代理キーを使用することを選択できます。

製品価格には多くの要因があるため、製品価格を別の表の候補にすることをお勧めします。実店舗環境では、製品の価格は場所によって異なります。

ネーブルオレンジを例にとってみましょう。購入した季節や地域などに基づいて、複数のベンダーから入手できます。

于 2012-11-21T15:52:25.410 に答える