sco*_*ttm 12 sql foreign-keys sql-server-2008-r2
有什么不同?如果我有这两个表:
CREATE TABLE Account (Id int NOT NULL)
CREATE TABLE Customer (AccountId int NOT NULL)
Run Code Online (Sandbox Code Playgroud)
我想要一个连接两者的外键,我应该做以下哪些?为什么?
选项1:
ALTER TABLE [dbo].[Customer] WITH CHECK
ADD CONSTRAINT [FK_Accounts_Customers] FOREIGN KEY([AccountId])
REFERENCES [dbo].[Account] ([Id])
Run Code Online (Sandbox Code Playgroud)
选项2:
ALTER TABLE [dbo].[Account] WITH CHECK
ADD CONSTRAINT [FK_Accounts_Customers] FOREIGN KEY([Id])
REFERENCES [dbo].[Customer] ([Id])
Run Code Online (Sandbox Code Playgroud)
取决于上下文。每个客户都有一个客户吗?哪个是家长?似乎一个 Account 有多个 Customer,在这种情况下,引用属于 Customer 表。
现在,话虽如此,请致电实体CustomerID和AccountID任何地方。它在主表上似乎是多余的,但名称在整个模型中应该是一致的。
我会使用从孩子到父母的外键。显而易见的问题是:如果您需要删除其中一个实体,会发生什么?
| 归档时间: |
|
| 查看次数: |
9927 次 |
| 最近记录: |