例如,要创建类别层次结构,您可以使用“parent_id”列,该列指向同一个表中的另一个类别。
这应该是外键吗?缺点/优点是什么?
是的。确保您没有孤儿(没有父项的条目),并且根据使用情况,如果您定义级联删除,则当父项被删除时,其所有子项也将被删除。
与任何其他外键一样,缺点是性能会受到轻微影响。
是的,你应该这样做。如果数据库关系中有一个属性充当同一数据库中另一个关系的主键,则应该将其设为 FK。
您将享受与外键相关的优势:
缺点:
是的,你应该这样做。
优点(对于任何外键):
我想不出任何真正的缺点。
是的,您应该将其设为外键。
好处是数据模型更好,冗余更少。