![]() |
1
0
听起来像Watsuimoto和MKV在考虑类似的事情——让一个基表保存FIDS,并从中继承一些特定的实体表。Watsuimoto提到它不起作用…如果你能让它发挥作用,那么我同意你们两个的观点,这是正确的解决方案。也许用整数ID上的FK来模拟它还不够紧密,无法帮助Watusimoto的客户将两个实体分配给同一个EntityBase。 可能的解决方法是使用具有实体类型的复合键来帮助识别它。一个例子:
你有很大的灵活性。您可以设置每种类型的FIDS。您可以使每种类型的EntityID唯一,也可以使所有实体的EntityID唯一。可以使EntityBase具有与EntityID分开的ID。您甚至可以使EntityType成为某种计算列,或者将其设为默认列,这样就不必向它写入值。 如果这不是你的茶杯,因为头顶有一个实体,那么我不情愿地提供:
喜欢将表视为“实体记录”的人通常不喜欢这种方法。对于超过六个实体来说,这是不方便的。但它 是 正确,并且允许您保留单个整数行ID(如果需要)。 当涉及到这样的问题时,我会去KenDowns的博客看看。他对关系设计有一些很好的想法。如果我能找到他发表的关于这个话题的文章,那将是我的第一个建议。 This article 是我能找到的最接近的。 |
![]() |
2
5
PostgreSQL(和Oracle)使用名为sequence的对象生成顺序值。与MySQL和SQL Server的顺序值生成方法不同,序列不绑定到表。所以你可以定义一个序列( documentation link ):
这将创建一个名为
要使用它,任何insert语句都需要包括:
…在insert语句中填充相应列的位置。IE:
而且,为了使这自动化一点,您可以设置
|
|
Johnny T · 基于当前值的SQL合并表[重复] 3 月前 |
![]() |
Peter Schofield · 类型转换Postgresql 4 月前 |
![]() |
Kevin Smeeks · Pyspark JDBC分区读取 4 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 4 月前 |