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を使用して、特定の年齢のすべてのユーザーを取得する必要がある場合は、ユーザーの生年月日とliked_atの年差を計算します。

他の提案は大歓迎です。

4

1 に答える 1

0

ほとんどの場合、カラムの使用目的に依存します。そのようなことがいつ発生したかに基づいて随時計算 (加算、減算など) を行う必要がない場合は、その人の年齢は完全に有効です (基本的には、生年月日のような日付を事前に評価しています)。ただし、誰かが 10 日前にゲームを気に入ったと言うつもりがある場合は、事前評価されたユーザーの年齢を逆にして likeDate に戻し、別の計算を可能にするのははるかに手間がかかります。データベースのデータを拡張可能に保ちたいと思う可能性が高いことを念頭に置いて、私の意見では、likedAtを使用することをお勧めします。

また、stackoverflow は、特定のコードの回答がない理論的な質問に回答するように設計されたサイトではないことにも注意してください。この質問はおそらく、programmers.stackexchange.com にあるはずです。

于 2012-04-20T23:48:57.567 に答える