gpt4 book ai didi

sql-server - 如何创建需要两个外键之一的表?

转载 作者:搜寻专家 更新时间:2023-10-30 22:03:21 25 4
gpt4 key购买 nike

我正在为文件创建一个所有权表。文件可以由单个用户(表 Users)或一组用户(表 UserGroups)所有。我想将整个关系作为一个表,其中每个元组要么是一个组的所有权,要么是一个用户对文件的所有权。

用户:User_ID(PK)、姓名、电子邮件
用户组:UserGrp_ID(PK)、名称、creator_ID(FK 到用户)

测试组所有权:???

我认为可以将这两种关系作为一个表来处理,但我不太确定该怎么做。如果需要更改 Users 或 UserGroups 表(仍在计划阶段),这也是可以接受的。

谢谢,

亚历克斯

最佳答案

你可以:

  • 在两个 FK 列上都允许 NULL
  • 添加一个 CHECK CONSTRAINT 以确保其中之一是非空的:
ALTER TABLE dbo.MyTable ADD CONSTRAINT
CK_MyTable CHECK (Column1 IS NOT NULL OR Column2 IS NOT NULL)
GO

关于sql-server - 如何创建需要两个外键之一的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7207853/

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