首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >黑客新闻rails克隆:关于建立链接、评论和投票之间关系的建议

黑客新闻rails克隆:关于建立链接、评论和投票之间关系的建议
EN

Stack Overflow用户
提问于 2011-03-01 22:26:51
回答 1查看 592关注 0票数 1

我很喜欢Rails但我们才刚开始约会。

用户可以对链接和评论进行投票。除了主键和时间戳外,我目前还为这些模型定义了以下属性:

  • Link url,标题,submitter_id,得分
  • content,commenter_id,score,link_id,parent_comment_id
  • 投票 id,voter_id,link_id,方向

我只是添加了评论模型,并思考如何将其与投票相结合。一些备选方案:

  1. 将链接和注释折叠到单个"Item“模型,并将选票映射到通用item_id
  2. 有两个投票表,一个用于评论,一个用于链接
  3. 将comment_id列添加到现有的选票表中

不知道什么是最好的。#1和#3引入了双重用途表,即表中的某些列只与该表中的行子集相关。2避免了这个问题,但似乎是多余的和愚蠢的。

权衡是不可避免的,还是我看不到黄金之路?你有什么推荐的?如果您碰巧知道github上有一个rails存储库可以处理类似的情况,我将非常感谢您的链接!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-01 22:37:47

我认为你要寻找的是一个多态关联。就你的情况而言,只需:

代码语言:javascript
复制
class Vote < ActiveRecord::Base
  belongs_to :votable, :polymorphic => true
end

class Link < ActiveRecord::Base
  has_many :votes, :as => :votable
end

class Comment < ActiveRecord::Base
  has_many :votes, :as => :votable
  #...
end

你的选票表看起来应该是:

代码语言:javascript
复制
id           : integer
votable_id   : integer 
votable_type : string # Comment || Link

这里你有一个关于它的铁路:多态关联Railscast

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5161179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档