Mysql 具有静态值的外键

Mysql 具有静态值的外键,mysql,database,foreign-keys,Mysql,Database,Foreign Keys,我有三张桌子 两个表tab1和tab2包含一些数据。 日历将数据链接到日期 是否可以创建包含id和静态kat的外键 我用kat=“tab1”在上下文中的“tab1”中为“calendar”中id为1的条目成像。 “tab1”和“tab”可以包含相同的ID 这是可能的还是一个非常糟糕的数据库设计 数据库结构: 如果我读对了,你想使用一个键将一个表的键与另一个表的键结合起来(实际上连接起来)?如果我的理解是正确的,那么你不想按照你建议的方式来做,而是使用桥接表(也称为连接表)。请参阅此处了解更多详细

我有三张桌子

两个表tab1和tab2包含一些数据。 日历将数据链接到日期

是否可以创建包含id和静态kat的外键

我用kat=“tab1”在上下文中的“tab1”中为“calendar”中id为1的条目成像。 “tab1”和“tab”可以包含相同的ID

这是可能的还是一个非常糟糕的数据库设计

数据库结构:


如果我读对了,你想使用一个键将一个表的键与另一个表的键结合起来(实际上连接起来)?如果我的理解是正确的,那么你不想按照你建议的方式来做,而是使用桥接表(也称为连接表)。请参阅此处了解更多详细信息:这并不是完整的方法。密钥kat不存储在数据库中-它应该依赖于像“tab1”这样的自由文本。在“Tab1”和“Tab2”之间没有链接,而可能考虑在<代码> Tab1 和<代码> Tab2中存储<代码>日历> /代码FK。Tab1和Tab2之间不必有链接。桥接表使您可以根据需要将尽可能多的选项卡与日历关联(实际上是任意数量的日历)。您只需存储一条记录,该记录具有选项卡的id(比如tab1)和日历的id(比如calendar1)。因此,您的桥接表可能包含:calendar\u id、tab\u id(这些是列名)calendar1、tab1 calendar1、tab2。然后,您可以在查询中连接这些表,以获取与所需特定日历相关的所有选项卡。顺便说一句,连接键是一个非常非常糟糕的主意。