gpt4 book ai didi

mysql - 外键引用连接表中的所有记录或无记录

转载 作者:行者123 更新时间:2023-11-29 23:27:18 25 4
gpt4 key购买 nike

这似乎是一个理想的功能,但当外键是主键(复合键)的一部分时,我似乎无法弄清楚如何做到这一点。

该表是一个简单的联结表,用于引用 User.idAccess.id 引用用户有权访问的函数的多对多关系:

Column |  References
user user.id
access access.id

因此,每个用户和每个访问级别可以有多个条目。为了简化“ super 用户”的事情,我希望为 access 设置一个 NULL 值,这意味着他们可以访问每个页面(这是我能弄清楚如何访问的唯一方法)输入一个未引用 access 表中行的值)。问题是 MySQL 不允许 NULL 值作为主键的一部分。

有没有办法解决主键的NULL问题,或者有其他方法可以引用外键中的每一行(或没有行)?我能想到的唯一其他方法是禁用外键或必须为表中的每个 access.id 添加一行。其中任何一种都是不可取的。

最佳答案

假设您的用户表上有一个 super 用户标志。您可以将每个 super 用户的笛卡尔连接和可用访问 ID 集 UNION 到您需要的任何查询中。

根据您正在做的事情,您也可以不将 super 用户的访问权限存储在数据库中,并在代码中以不同的方式对待它们 - 即,一旦您将它们建立为 SU,就忽略访问检查。不过取决于您的应用程序。

关于mysql - 外键引用连接表中的所有记录或无记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854510/

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