【发布时间】:2012-02-15 18:44:05
【问题描述】:
我看到大多数人只是讨厌在数据库设计中存在循环依赖。由于在大多数数据库引擎中对此的支持是“棘手的”,我想知道是否有办法绕过这种设计:
我有一个用户表和一个图片表
每张图片都有一个userId(插入它的用户) 每个用户都有一张头像
我可能只是创建一个 ProfilePictures 表,但它会在其他一些地方(如图片 cmets)引起问题。
我知道还有一些其他问题与此问题相关,但它们与父子关系更相关,这里不是这种情况。
那么,这里可以使用循环依赖吗?如果没有,你会如何避免?
【问题讨论】:
-
所以,一个用户可以插入很多图片。图片仅由一个用户插入。并且用户(可能)有一张个人资料图片(或没有)。对吗?
-
我不会使用循环依赖,除非绝对没有其他方法可以做到这一点。在 25 多年的数据库工作中,我从未见过没有其他选择的案例。大多数人没有想到的一个问题(直到为时已晚)是循环依赖破坏了许多第三方工具,例如 CASE、图表和逆向工程工具。
标签: sql database-design circular-dependency