也会检查其他键的外键约束

问题描述

我正在将MysqL用于多用户站点。我管理用户的方式是在每个表中都有一个UserId列,因此无论何时用户登录,我都可以通过存储用户来假装存在的唯一数据就是属于当前用户的数据会话变量中的ID,并向每个查询添加WHERE UserId = ?

由于我想假装,因此唯一存在的数据是当前用户的数据,因此外键检查还应该假装仅存在属于当前用户的行。例如,假设我有这些表:

假设我有这些食谱:

Id | UserId | Name
1  |   7    | "Carrot Cake"
2  |   8    | "Chicken Curry"

以下成分可以:

Id | UserId | RecipeId | Name
1  |   8    |    2     | "Chicken"
2  |   8    |    2     | "Curry"

但以下内容并非如此,因为用户7不拥有配方2:

Id | UserId | RecipeId | Name
1  |   7    |    2     | "Flour"

因此,我希望我的数据库能够像仅存在属于当前用户的行那样进行操作,以便将配料添加到另一个用户的配方中就像插入配料不存在的配方一样,导致查询失败。

有没有一种使用约束来做到这一点的方法?我现在唯一能想到的解决方案是查询配方,并确保每个新成分都属于属于当前用户的配方,但是我有一些表引用了多个其他表,并且这样做需要我对每个插入内容运行多个查询

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)