gpt4 book ai didi

ruby-on-rails - 我应该非规范化 has_many has_many 吗?

转载 作者:行者123 更新时间:2023-12-01 06:48:10 25 4
gpt4 key购买 nike

我有这个:

class User < ActiveRecord::Base
has_many :serials
has_many :sites, :through => :series
end

class Serial < ActiveRecord::Base
belongs_to :user
belongs_to :site
has_many :episodes
end

class Site < ActiveRecord::Base
has_many :serials
has_many :users, :through => :serials
end

class Episode < ActiveRecord::Base
belongs_to :serial
end

我想对 User.serials.episodes 做一些操作,但我知道这意味着各种巧妙的技巧。理论上,我可以将所有剧集数据放入串行(非规范化)中,然后在需要时将其放入 group_by Site。

如果我有很多需要查询的剧集,这会是一个坏主意吗?

谢谢

最佳答案

我不会费心去规范化。

如果您需要查看计数,您可以在关系上查看 counter_cache 以保存查询。

你的外键有正确的索引吗?如果是这样,从一个额外的连接中提取数据应该不是什么大问题,但您可能需要下拉到 SQL 以在一个查询中获取所有结果,而无需遍历 .serials:

User.serials.collect { |s| s.episodes }.uniq  # ack! this could be bad

关于ruby-on-rails - 我应该非规范化 has_many has_many 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2691779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com