![]() |
1
0
我想我明白你在问什么。您有两种类型的实体,它们之间可能共享一些公共信息(特别是,“我连接到什么?”)但是有很多基本的区别(我可以想象,基于IP的设备有一个“IP地址”字段,而基于串行的设备没有)。 你可能想对这个词做些研究” single-table inheritance “。这是一种技术,单表包含两种类型实体的所有字段。其中一些字段对这两种类型都是通用的,但其中一些字段只适用于一种类型或另一种类型。在预期的sti下,通常有一个字段指示记录表示的实体的“类型”,而不适用的字段都将设置为空。 或者,您可以对多个表执行类似的操作。您可以有一个硬件表来表示公共数据,然后有一个iphardware和serialhardware表来表示特定于每种类型的数据。然后,后两个表可以具有对硬件表的外键引用,以引用它们自己的“公共”数据。其他表通常引用硬件表,然后根据需要和硬件类型向下钻取到“子类”表中。 |
![]() |
developer · 带外键的SQL表设计 6 月前 |
![]() |
relatively_random · 确保两个表之间一致的共同参考 7 月前 |
![]() |
b126 · 在两种不同的Oracle模式上执行相同查询的速度差异很大 1 年前 |
![]() |
robertspierre · 在多对多关系中自动删除未引用的行 1 年前 |
![]() |
Michael Samuel · MYSQL在以下情况下自动创建索引 7 年前 |