2009-09-14 46 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