|
|
1
1
你明白了。 我一直在你的立场,我很幸运仍然有这个网站的书签,以防我需要再次参考它。它甚至包括有关如何设置所需约束的信息。 假设您使用的是SQL Server,下面是: Implementing Table Inheritance in SQL Server |
|
2
2
只将类型存储在一个表中,父表或子表,只需选择一个。如果你把它放在两个地方,你就必须保持它们的同步,为什么不把所有的子信息都放在父系统中呢?这就更容易了;-)(开个玩笑,不要把所有东西都放在父表中!) 编辑 我在genericdevice表中放了一个type列,但我将它设置为一个代码或数字ID,并将fk设置为devicetype表,而不是像“laptop”或“camera”这样的单词。还要确保品牌在品牌表中使用代码或ID和FK。
根据不同值的预期数量选择代码/ID数据类型。 对于它的价值,您可以这样查询(不使用deviceType列):
|
|
|
3
0
我将在父表中维护一个deviceType列,因为您可能有多个设备类型映射到同一个子表。 我将在任何实际需要它来加速查询的子表中维护deviceType的副本。我不认为仅仅为了得到deviceType而加入到父系统中会减慢速度。另外,您可能会使用父表中的许多列,在这种情况下,多列不会损害任何内容。 副本将由插入和更新时的触发器维护。 您提到了更新deviceType导致数据完整性问题的问题。答案是,“不要这样做”。如果设备类型不能更改,那么更新触发器应该不允许更改。 |
|
|
freeman_irl · 条令2类表继承YML 13 年前 |