我正在努力寻找在一个新的 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,然后运行第二个查询:
d = Document.last
s_ids = d.document_section_ids
Resource.joins(:document_sections)
.where(document_sections: { id: s_ids })
.uniq
所以这开始很糟糕,随着查询变得更复杂,情况会变得更糟。每次我不得不触及这段关系时,它变得相当头疼。
我想知道在布置这些表时是否可以遵循不同的模式,这样查询它们就不会那么令人头疼了?还是我缺少更好的查询策略?