Rails应用程序中的参照完整性

时间:2015-08-18 09:19:40

标签: ruby-on-rails orm referential-integrity

我是新来的rails,来自Symfony(受到Rails的启发)。

我习惯于完整定义我的数据库模式,并确保我的表在3NF,如果需要4NF等。

我找不到在数据库级别明确指定CONSTRAINTS的方法,在网上搜索后,我遇到了几个帖子,例如:Hacked Ref Integrity,这让我感到很惊讶。

不可否认,我所链接的文章已经过时了,希望现在情况有所改善。

(明显的?)在轨道中缺少RI使整个框架看起来相当业余,与Symfony相比,它的灵感。

请说不是这样......

1 个答案:

答案 0 :(得分:1)

rails的最初方法是在应用程序域中对此负责。这是一种有意识的妥协,如果你找到它,你会发现很多关于它的讨论

然而,由于越来越多的开发人员分享了您的担忧,因此确实已经发展出几种方法来识别数据库中的角色。

正如您提到的文章also shows,您实际上可以使用正常迁移在迁移中明确指定许多约束:

http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys

add_foreign_key :articles, :authors

或者您可以更进一步,使用schmea plus gem

等扩展程序