【发布时间】:2012-09-19 11:39:12
【问题描述】:
我必须使用 Rails 的活动记录或 sql (sqlite) 执行以下查询。
让我们从模型的描述开始。
- 用户 1:n 兴趣
- 兴趣 m:n 类别
- 兴趣 m:n 位置
- 事件 m:n 类别
- 事件 m:n 地点
m:n 关系正在通过具有模式interests_categories、events_categories 等的第三个表来实现。
我有用户并且这些用户有兴趣(类别 -> 例如运动、音乐和他喜欢的位置)。事件被标记为位置和类别。
现在我想列出所有可能适合特定活动的用户。例如,如果在纽约市举办了一项活动,并且有一些体育活动,我想根据地点和类别获取可能对此活动感兴趣的用户列表。
我想在单个数据库访问中完成此操作,而不是多个。 在 ActiveRecord 或 sql 中会是什么样子? (更有效的方法将是首选) 我可能必须先加入类别/位置表,根据先前加入的所有表加入兴趣,然后根据兴趣选择所有用户。 不幸的是,我对连接 sql 的了解有限。或者甚至有不同的方法可用?
【问题讨论】:
-
我认为您的数据模型不正确。我认为用户与位置有关,而不是与兴趣有关。
-
“兴趣”表包含附加信息。我刚刚发现可以组合几个查询。这可能是要走的路。现在必须对此进行一些研究。
-
我应该说,我认为用户与兴趣和位置相关,而不是兴趣与位置相关。
-
我没有看到用户和事件之间的链接。分享您的模型结构。
-
用户和事件之间没有直接关系。
标签: sql ruby-on-rails database activerecord