【发布时间】:2011-12-27 14:57:07
【问题描述】:
我有一个关于如何构建数据库的问题。我有一个 reddit 式的投票系统。物品可以获得投票。但是每个项目都属于一个主题,每个主题都属于一个类别。虽然只有项目可以获得投票,但我希望能够访问主题和类别中的投票数。关于如何做到这一点的任何建议?
我看到了 4 种主要的方法:
- 对投票进行反规范化并将投票存储在项目表、主题表和类别表的属性中。然后,每当发生投票/否决时,我都需要更新所有 3 个。
- 创建一个单独的“投票”模型。投票属于项目,项目属于主题,主题属于类别。然后我可以在需要访问任何内容时通过链查询投票数。
- 只要有项目和投票。项目将具有类别和主题属性..然后我会查询主题中的项目并计算对它们的投票..
- 学习使用 NoSQL 数据库系统。
额外信息:我正在使用 Rails,目前我只真正了解 MYSQL。这是我应该学习像Mongo这样的东西的时候吗?这真的只能通过 Hadoop 来实现吗?我可以在 MySQL 中完成此操作吗?谢谢!
【问题讨论】:
-
我对您的工具了解不多,无法回答您的问题,但从数据库的角度来看,选项 2 是唯一明智的解决方案。这种类型的东西正是 RDBMS 的用途。
标签: mysql ruby-on-rails database database-design voting