17

違いは何ですか?これらの2つのテーブルがある場合:

CREATE TABLE Account (Id int NOT NULL)

CREATE TABLE Customer (AccountId int NOT NULL)

そして、2つをリンクする外部キーが必要です。次のうちどれを実行する必要がありますか。その理由は何ですか。

オプション1:

ALTER TABLE [dbo].[Customer]  WITH CHECK 
  ADD  CONSTRAINT [FK_Accounts_Customers] FOREIGN KEY([AccountId])
  REFERENCES [dbo].[Account] ([Id])

オプション2:

ALTER TABLE [dbo].[Account]  WITH CHECK 
  ADD  CONSTRAINT [FK_Accounts_Customers] FOREIGN KEY([Id])
  REFERENCES [dbo].[Customer] ([Id])
4

3 に答える 3

6

コンテキストに依存します。すべての顧客にはクライアントがいますか? 親はどっち?Account には複数の Customers が含まれているようです。この場合、参照は Customer テーブルに属します。

さて、そうは言っても、エンティティCustomerIDAccountIDどこにでも電話してください。プライマリ テーブルでは冗長に見えるかもしれませんが、名前はモデル全体で一貫している必要があります。

于 2013-02-21T17:36:44.390 に答える
5

子から親への外部キーを使用します。証拠となる質問は、エンティティの 1 つを削除する必要がある場合はどうなるかということです。

于 2013-02-21T17:36:18.740 に答える