gpt4 book ai didi

sql - 应该在父表还是子表上创建外键?

转载 作者:行者123 更新时间:2023-12-04 01:10:34 27 4
gpt4 key购买 nike

有什么不同?如果我有这两个表:

CREATE TABLE Account (Id int NOT NULL)

CREATE TABLE Customer (AccountId int NOT NULL)

我想要一个链接两者的外键,我应该做以下哪一个,为什么?

选项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])

最佳答案

取决于上下文。每个客户都有客户吗?哪个是家长?似乎一个帐户有多个客户,在这种情况下,引用属于客户表。

现在,也就是说,请调用实体 CustomerIDAccountID到处。它在主表上似乎是多余的,但名称应该在整个模型中保持一致。

关于sql - 应该在父表还是子表上创建外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15008696/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com