Dan*_*ton 14 postgresql inheritance activerecord ruby-on-rails
所以我们都知道rails的STI(单表继承)很糟糕,因为它会导致混乱的数据模型和次优的数据库.
然而,PostgreSQL似乎非常漂亮地处理继承!
有没有办法在使用Postgres继承而不是痛苦的宽表和"类型"列的同时获得rails'漂亮干净的STI API?
简而言之 - 没有很好的干净的 STI API 来满足您目前要完成的任务。
大约一年前,我实际上对此进行了调查,并得出以下结论:由于以下几个原因,这不是一个好主意:
大多数 IT 问题都归结为:努力与收益。
在你的情况下,你应该问自己这个问题:
PS:
还有一个关于在你的应用程序中构建 STI 的快速提示:如果你发现你有很多使用 STI 的模型,比如 ProductCategory、CommentCategory、PhoneCategory、ClientCategory,它们都继承自 Category - 我倾向于将它们组织在模型目录中的文件夹中。然后在application.rb 中添加一行:config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**/**}')]