知识卡片
自身关联建模递归结构
内容
一张表的某个字段可以引用同一张表的另一行,这种自身关联能把树状结构、别名指向正体这类 递归关系直接表达在数据模型里,而不必在应用代码里写额外的逻辑去猜测或拼凑这种 关系。比如给艺人起的”别名记录”,只要在自己身上存一个指向”正体艺人”那一行的外键,查询 时按这个字段跳转一次即可解析出真正的艺人,不需要维护一张单独的别名映射表,也不需要写 字符串匹配式的猜测代码。发散:这提醒我一个更通用的原则——遇到”同类事物之间有层级或 指向关系”的建模需求时,先想想能不能用自引用表达,而不是急着建一张额外的关系表;自引 用往往是最贴近问题本质、也最省心的方案。
参考来源
《精通Hibernate》第5章《自身关联》