2012-04-20 87 views
0

我有一些表格,它們分別是:商店計算出的數據或表預先計算的數據(計算用戶的年齡或時間戳)

user 
============================== 
user_id | username | etc.. 
============================== 

user_metadata 
==================================== 
user_id | birthday | gender | etc.. 
==================================== 

game 
======================== 
game_id | name | etc.. 
======================== 

我要存儲用戶喜歡的遊戲,因爲年齡屬性是很重要的,我需要區分什麼時候做出類似的事情,如果某人在5歲或8歲時喜歡比賽,那麼它應該是不同的實體。那麼您推薦哪種表格結構?

  1. 店歲的用戶的時候喜歡做:

    user_likes 
    ========================================== 
    user_id | game_id | user_age_when_liking 
    ========================================== 
    
  2. 商店時間戳

    user_likes 
    ========================================== 
    user_id | game_id | liked_at (timestamp) 
    ========================================== 
    

因此,與選項編號2,如果我需要讓所有用戶都喜歡某個年齡段,我會計算用戶birthdate和likes_at之間的年差。

其他建議非常受歡迎。

回答

0

它主要取決於使用列的目的。如果你根本不需要花費時間計算(加法,減法等),那麼這個人的年齡是完全有效的(基本上你是預先評估birthDate-likeDate)。但是,如果您有意在10天前說某人喜歡遊戲,那麼將預先評估的用戶年齡恢復爲類似日期以進行另一次調查將會有更多工作。請記住,您最可能希望保持您的數據庫數據可擴展性,使用已在1,首選我的意見。

我還會注意到,stackoverflow不是一個旨在回答沒有特定代碼答案的理論問題的網站,這個問題應該可能在programmers.stackexchange.com上。

+0

目前我不知道我是否需要喜歡除了計算年齡以外的任何目的,這就是爲什麼我很困惑。猜猜我會去使用likedAt。關於這個問題,下次我會記住這一點。謝謝。 – ayublin 2012-04-21 08:53:33