Ben*_*dos 4 php mysql referential-integrity
我问的原因是我们想要使用MySQL当前不支持的某个CHECK约束.如果没有这种类型的约束,使用外键和引用完整性的全部原因似乎会随着应用程序代码承担更多数据库职责而减少.
如果我们要创建一个"哑"数据模型并将所有参照完整性检查移动到应用程序代码中的一个层,那么潜在的测试可能会更简单,因为参照完整性错误将被困在应用程序而不是数据库中.它还可能加速新模块的开发,因为在测试之前它们不一定必须完全引用(这是一个术语吗?).
那么,在MySQL中坚持使用"正确的"数据模型并保留外键和"ON UPDATE CASCADE"语句等是否还有其他好处?
或者,我们应该抛弃MySQL并转向别的东西吗?!
谢谢!
一些开发人员主张在数据库中根本没有业务逻辑 - 你的哑数据存储.所以这绝对是一个有效的策略.
关于将约束(和其他业务逻辑)移出数据库的关注点是,在各处强制执行约束更加困难.每个应用程序中的每个开发人员都可以违反该约束.DBA也无能为力.
所以,我倾向于在数据库本身中使用这些规则.