ruby-on-rails Rails中的参照完整性

a5g8bdjr  于 2023-02-14  发布在  Ruby
关注(0)|答案(2)|浏览(111)

Rails不支持引用完整性外键。我该如何管理它呢?
理想情况下,应用程序不应该处理这个问题;数据库应该是这样的。2像外国人这样的插件有缺点吗?3如何处理?

xvw2m8pv

xvw2m8pv1#

这是Rails ActiveRecord的一个设计决策。
我认为存储过程和约束是一致性的卑鄙和鲁莽的破坏者。不,数据库先生,你不能拥有我的业务逻辑。你的过程野心不会有结果,你必须从我冰冷的面向对象的手中撬出逻辑。
Choose a single layer of cleverness - DHH
所以答案是DB处理的引用完整性根本不是Rails的方式。

r6vfmomb

r6vfmomb2#

如果您不熟悉引用完整性,那么它是关系数据库防止意外删除其他记录所指向的记录的方法。
您可以使用rails引用完整性以编程方式完成此操作,方法是将以下内容添加到has_one或has_many子句中:

,:dependent => :restrict_with_error

如果您希望所有的子记录都与父记录一起销毁,请在has_one或has_many子句中使用以下语句:

,:dependent => :destroy

活动记录具有许多用于处理从属记录的选项。请参阅:
活动记录文档
Active Record guide

相关问题