gpt4 book ai didi

SQL Server 多个表的外键

转载 作者:行者123 更新时间:2023-12-02 19:25:33 24 4
gpt4 key购买 nike

我有以下数据库架构:

members_company1(id, name, ...);
members_company2(id, name, ...);
profiles(memberid, membertypeid, ...);
membertypes(id, name, ...)
[
{ id : 1, name : 'company1', ... },
{ id : 2, name : 'company2', ... }
];

因此,每个个人资料都属于 company1 或 company2 的某个成员,具体取决于 membertypeid

members_company1     —————————      members_company2     
———————————————— ————————————————
id ——————————> memberid <——————————— id
name membertypeid name
/|\
|
|
profiles |
—————————— |
memberid ————————+
membertypeid

我想知道是否可以在 profiles 表中创建外键,以基于 memberidmembertypeid 对引用来实现引用完整性members_company1 或members_company2 表记录?

最佳答案

一个外键只能引用一个表,如 documentation 中所述。 (强调我的):

A foreign key (FK) is a column or combination of columns that is used to establish and enforce a link between the data in two tables.

但是,如果您想开始清理内容,可以按照 @KevinCrowell 建议创建一个 members 表,从两个 members_company 表中填充它,并将它们替换为 View 。您可以在 View 上使用INSTEAD OF 触发器将更新“重定向”到新表。这仍然需要一些工作,但这将是在不破坏现有应用程序的情况下修复数据模型的一种方法(当然,如果在您的情况下可行的话)

关于SQL Server 多个表的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15935402/

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