在像ruby-on-rails这样的活动记录框架中工作时,使用外键约束是否有优势?

Law*_*nti 3 ruby-on-rails foreign-keys rails-activerecord

经过5年的中断后,我又回到了全职网络开发阶段.我以前的经验(没有活动记录或MVC)告诉我对我的数据库模式非常彻底.外键约束,唯一索引等......在你写意大利面条代码时真的可以帮到你.

在Active Record/MVC框架中工作时,社区是否仍然发现这些有用?

编辑

我主要担心的是在两个地方管理限制; 型号代码和数据库.这意味着重复工作,它可能会导致错误.即你对数据库中的某些字段有一个独特的约束,但模型不知道它?我猜相反的情况也是如此,你可能只是忘记将约束放在模型中,然后当你不想要它时你会有重复的数据.

Bil*_*win 5

如果不使用约束,则数据库累积损坏的引用完整性和重复的情况,其中应存在唯一值等.

更重要的是,如果您确实使用了约束(并且不习惯像某些人那样不时地禁用它们),那么您将始终确保所有数据都符合您的预期数据模型.

这是数据库强制约束的价值:它是您确定数据的唯一方法,您不必仔细检查您的框架(例如ActiveRecord)是否正常工作.您不必编写SQL清理脚本来查找虚假的孤立和重复.