2009-09-14 40 views
1

尝试实施用户和发布的评分系统。在数据库和代码中管理多种声誉

什么是管理多个声誉的最佳模式。

用户拥有来自发布和反馈的声誉(类似于SO)。

发帖也有声望(再次类似于SO)。

我最初的想法是拥有一个信誉表。这些行将对应于用户/发布的ID和投票的价值。

两个问题:

  • 这是管理这个的最好方法?

  • 用户和发布记录的唯一ID是自动递增的,这是rake创建的默认值。似乎unique_ids可能会发生碰撞。这是有效的担忧吗?我怎么能减轻这个?

感谢

回答

4

我将不得不为后的口碑和声誉用户不同的表。这些在语义上是不同的东西,应该这样分开。

这样你就可以拥有一张表,其中有一个外部关键字的帖子,另一个关键字适用于声誉适用的用户。

+0

虽然似乎有很多重复的代码。对此有何建议? – cbrulak 2009-09-14 23:43:40

+0

如果两个表具有相同的'形状'不会对你的信誉处理代码不在乎吗?在.Net中,你必须编写一些接口,但它仍然可以工作。不知道如何做到这一点在红宝石是,但我会认为这是可能的 – Joshua 2009-09-15 00:32:44

+1

也许继承是你应该看的地方。请参阅http://api.rubyonrails.org/classes/ActiveRecord/Base.html和“单表继承”一节 您可能有一些额外的代码,但不应该复制代码,并且从数据库它的立场将更加正常化。 – 2009-09-15 00:44:27