我目前正在建模数据库模式。其中,地址被多次使用,遵循固定的结构。在我们以前的系统中,地址关系被建模为地址包含外键,例如用户的外键。
推理:这样,一个地址只能附加到一个父级。然而,从我的角度来看,这绝对是一个混乱,因为有时地址关系中最多存在八个外键,因此必须注意只有一个被填充。
将密钥放在父节点上不是更有意义吗,这样通过非零约束可以确保每个父节点都有一个地址并且地址关系是干净的?父母也很少/从不从地址侧导航到。
还是我这样做违反了任何约定?在这种情况下,清洁不比“公约”更重要吗?如果需要,还可以另外使用触发器对先前的需求进行建模吗?