在MySQL中,是否可以在两个不同的表中有一个自动递增的列?示例:table1有一列’secondaryid’,table2也有一列’secondaryid’.是否可以让table1.secondaryid和table2.secondaryid保持相同的信息?像table1.secondaryid可以保存值1,2,4,6,7,8等,table2.secondaryid可以保存值3,5,9,10?其原因有两个:1)两个表将在“喜欢”的单独表中引用(类似于喜欢Facebook页面的用户)和2)表2中的数据是使用主键的table1的子集.所以表2中的信息依赖于table1,因为它们是不同类别的主题. (类别为table1,主题为table2).有可能做上面描述的事情,还是有一些其他的结构性工作我不知道?
最佳答案
您似乎想要在两个单独的表中区分类别和主题,但是在另一个表中引用它们的ID,以便于用户喜欢类别或主题.
原文链接:https://www.f2er.com/mysql/433766.html您可以做的是创建一个包含子类型和主题的超实体表.自动递增的密钥将在超实体表中生成,并且仅插入到两个子类型表中的一个中(基于它是类别还是主题).
子类型表通过自动递增字段以1:1的关系引用此超级实体.
这样,您只需基于一列(可以表示类别或主题)将超实体表链接到likes表,并且子类表中的id都不会出现在两者中.
以下是如何对此进行建模的简化示例:
此模型允许您维护类别和主题之间的关系,但在superentity表中将这两个实体一般化.
此模型的另一个优点是您可以将子类型表中的常用字段抽象为superentity表.例如,类别和主题都包含字段title和url:您可以将这些字段放在superentity表中,因为它们是其子类型的常见属性.仅将特定于子类型表的字段放入子类型表中.