私は(括弧内のPKで)次の表を使用している場合...データベースに1対多の関係を正しく作成するにはどうすればよいですか?
Store { [StoreCode], PhoneNumber, Address, ...}
StoreHours { [id], DayofWeek, Open, Close, ClosedDate }
は今、私の考えは文句を言わない、すべての店である、彼らは日常の同じ時間を持っている習慣&同じ時間を持っています「OpenTimeA
」、「OpenTimeB
」、「OpenTimeC
」、「CloseTimeA
」、「CloseTimeB
、...」のような複数の列を作成する代わりに、リレーションシップテーブルを作成することができます。しかし、私はそれらをやることに慣れておらず、最初に正しいことをしたいと思っています。ここで私の質問は、私はそれを行う場合は、この方法で...
は、名前には良い方法があります...私は上の表に追加することを考えていたものを
ですテーブルを
Has_a
より大きくするか、名前を付けてストアの複数の異なるタイプの関係に使用することができます。たとえば、別のテーブルManagers
を追加し、マネージャIDのテーブルHas_a
にカラムを追加します。Store StoreCode PhoneNumber Address ... PRIMARY KEY (StoreCode) StoreHours StoreCode DayOfWeek OpenTime CloseTime PRIMARY KEY (StoreCode, DayOfWeek) FOREIGN KEY (StoreCode) REFERENCES Store(StoreCode)
あなたがいることに気付いた場合:
のような...最初の質問については
StoreInformation { [StoreCode], TimeId, ManagerId, ...}
私はこれをしても、店舗コードのほかに正確に同じ複数のレコードを持つ可能性はありますか? – daveomcd
UNIQUE制約でもある 'PRIMARY KEY'制約のため、複数の同一レコードを持つことはできません。 –
Doh!感謝しなかった!そして、閉鎖された日付を組み込むために、私は別のテーブル 'StoreClosed {[SchoolCode、Closed(Date)]}'を作成することができると思います... – daveomcd