これらの2つのテーブルから1対1リレーションシップを作成する最良の方法は何ですか? ?1対1リレーションシップを作成するSQL
CREATE TABLE hotel(
id_Hotel
...
)
CREATE TABLE Manager(
ID_Manager
...
)
ありがとうございました!
これらの2つのテーブルから1対1リレーションシップを作成する最良の方法は何ですか? ?1対1リレーションシップを作成するSQL
CREATE TABLE hotel(
id_Hotel
...
)
CREATE TABLE Manager(
ID_Manager
...
)
ありがとうございました!
通常のアプローチは、次のようになります。
create table Hotel(id_Hotel INT, id_Manager INT...)
しかし、もっと現実的な解決策がある:
おそらくcreate table Hotel(id_Hotel INT, ...);
create table Manager(id_Manager INT, ...);
create table Hotel_Manager(id_HM INT, id_Hotel INT, id_Manager INT, CreateDate Date);
'id_HM'は無駄です。 '(id_Hotel、id_Manager)'を 'Hotel_Manager'の主キーにするだけです。しかしそれは1対1の関係ではなく、多対多です –
私のものを修正すると大好きです、@a_horse_with_no_name – JohnHC
、各ホテルには、マネージャを持っているので、開始する場所は中マネージャIDでありますホテルのテーブル。 –
なぜこれは1-1の関係にする必要がありますか?あなたが一度退職したマネージャーの歴史を守っていませんか?ジョインのための外部キーとユニークな制約を調べてください。 –
1対1の関係を使用する学校のアゴメントですが、残しておきます。学校のプロジェクト以来、私はマネージャーの歴史を守る必要はありません。だから私はおそらくこれを作成するテーブルのホテル(id_Hotel INT、id_Manager INT ...)とテーブルマネージャ(Id_Manager、....)を作成する –