新しい Rails アプリでデータベースを設計/クエリする最良の方法に苦労しています。これは私が今持っているものです:
documents:
title
has_many :document_sections
document_sections:
belongs_to :document
habtm :resources
resources_document_sections:
belongs_to :resource
belongs_to :document_section
resources:
text
だから言うのは簡単document_section.resources
です。しかしdocument.resources
、私に迷惑をかけています
これまでに見つけた唯一の方法は、ドキュメント セクション ID を収集してから、2 番目のクエリを実行することです。
d = Document.last
s_ids = d.document_section_ids
Resource.joins(:document_sections)
.where(document_sections: { id: s_ids })
.uniq
したがって、これは悪いことから始まり、クエリが複雑になるにつれて悪化します。この関係に触れなければならないたびに、かなりの頭痛の種になっています。
これらのテーブルをレイアウトする際に従うことができる別のパターンがあるかどうか疑問に思っています。それらに対するクエリはそれほど頭痛の種ではありませんか? または、私が見逃しているより良いクエリ戦略はありますか?