2017-10-14 12 views
1

私は、私が販売しているすべての製品に関する情報を持つテーブルと、私の7つの店舗に関する情報を持つテーブルを持っていると言います。各店舗には独自のIDがあります。今では、私が在庫している特定の商品の量と、各店舗でどれだけ持っているかを教えてくれるテーブルを作りたいと思っています。私はすべての店を新しいテーブルの列にすることを考えています。それを行うための巧妙な方法は何ですか?それに対処するより良い方法はありますか?私はプライマリキーのないテーブルを持つことができますか?あなたが持つべき類似の列が多すぎるのを避けるにはどうすればよいですか?

enter image description here

+2

** YIKES **あなたが[name] 1、[name] 2、... [name] nが丘のために走っているのを見たら!これは正規化されておらず、それ以降の痛みになります。あなたが3つの新しい店を開くことができるように店舗5と6がマージするとどうなりますか?モデルを正規化してください。また、価格は時間とともに変化しますか?または店舗間で価格が異なる可能性がありますか? –

+0

この場合正規化の仕方はわかりません。それが私が求めていることです。 1つの製品に対して複数のエントリーを持たずに列の数を減らすにはどうすればよいですか? – waterdrinker

+0

研究の標準化には多くの言及がありますが、以下に関連する回答があります。あなたには多くの製品があり、いくつかの店舗があり、各店舗には多くの製品があります。したがって、ある時点では、製品への複数の参照*が必要です(ただし、製品を定義するにはマスター・レコードが1つ必要です)。私は、より多くの正規化が必要であることを明確に示すデータモデルの症状を強調していました。 –

答えて

4

ストックテーブル、:

  • のProductId(FK)

  • StoreId(FK)

  • 証券

店舗の在庫を合計したい場合は、GROUP BYを使用してビューを作成します。 PKの場合は、コンプレックスをProductId + StoreIdとして使用するか、人工的なものを作成することができます。 主キーはほとんどの場合、強くお勧めします。

関連する問題