在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 中的数据是使用主键的表 1 的子集。因此,表 2 中包含的信息依赖于表 1,因为它们是不同类别的主题。 (类别为表 1,主题为表 2)。是否可以做上述的事情,或者是否有一些我不知道的其他结构工作?
看来您想在两个单独的表中区分类别和主题,但在另一个表中引用它们的 idlikes
方便用户喜欢某个类别或某个主题。
您可以做的是创建一个具有子类型的超级实体表categories
and topics
。自动递增键将在超级实体表中生成,并仅插入到两个子类型表之一(基于它是类别还是主题)。
子类型表通过自动递增字段以 1:1 关系引用该超级实体。
这样,您可以简单地将超级实体表链接到likes
表仅基于一列(可以表示类别或主题),并且没有id
子类型表中的内容将出现在两者中。
以下是如何对此进行建模的简化示例:
该模型将允许您维护类别和主题之间的关系,但将这两个实体概括为superentity
table.
该模型的另一个优点是您可以将子类型表中的公共字段抽象到超实体表中。比如说categories
and topics
两者都包含字段title
and url
:您可以将这些字段放在superentity
表,因为它们是其子类型的公共属性。仅将特定于子类型表的字段放入子类型表中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)