在MySQL中,拥有如下所示的表结构是不好的......
Table stuffA
ID
Table stuffB
ID
Table superStuff
ID
type
stuffID
...在哪里取决于superStuff(type)的值,superStuff(stuffID)可以引用stuffA(ID)或stuffB(ID)?
先谢谢你的帮助
答案 0 :(得分:3)
我认为你的意思相反:
Table stuffA
ID
superStuffID
Table stuffB
ID
superStuffID
Table superStuff
ID
此外,您不需要type
属性,因为当您查询一个表或另一个表时它是隐式的。
注意:我假设您在表格中还有其他字段,并且您已经将它们省略,以便做出最小的示例。如果不是这种情况,那么你可能不需要在那里进行层次分析。
此answer可能有助于理解这一点。
答案 1 :(得分:2)
如果站在Superstuff上你想知道谁是该行的父亲,你的解决方案是正确的。
可能是一个选项,但不符合您的解决方案中的建议。
考虑:
id是整个数据库中指示的唯一Superstuff,在表stuffB和stuffA上,ID是Superstuff的ID。在stuffB和stuffA上的ID是Superstuff的外键。
Table Superstuff
ID
Table stuffA
ID (exist on superStuff)
Table stuffB
ID (exist on superStuff)