一部のデータがソースになるために静的でなければならない場合
テーブル 人物A (静的) 幸福度 0
そして、ユーザーのプレイの進行状況を保存するためのテーブルが必要です
表 User_1_Person_A 幸福 5
データベースをスマートに設計するにはどうすればよいですか? 私の唯一の考えは
テーブル Person_A 幸福 5 User_id 1
ただし、2 つのテーブル列は同じになります。悪いデザインですか?ありがとう
一部のデータがソースになるために静的でなければならない場合
テーブル 人物A (静的) 幸福度 0
そして、ユーザーのプレイの進行状況を保存するためのテーブルが必要です
表 User_1_Person_A 幸福 5
データベースをスマートに設計するにはどうすればよいですか? 私の唯一の考えは
テーブル Person_A 幸福 5 User_id 1
ただし、2 つのテーブル列は同じになります。悪いデザインですか?ありがとう
ご質問の内容を推測させていただきます。
進行状況を追跡したい場合は、タイムスタンプ付きのテーブルが必要です。
テーブルを定義する方法は次のとおりです。
Person
------
Person ID
Person User ID
Person Name
...
Person ID は、Person テーブルのプライマリ (クラスタリング) キーです。これは、自動インクリメント整数または long です。
Skill
-----
Skill ID
Skill Name
スキル ID は、スキル テーブルのプライマリ (クラスタリング) キーです。これは、自動インクリメント整数または long です。
Progress
--------
Progress ID
Person ID
Skill ID
Progress Timestamp
Progress Level
Progress ID は、Progress テーブルのプライマリ (クラスタリング) キーです。これは、自動インクリメント整数または long です。
(Person ID、Skill ID、Progress Timestamp DESCENDING) に別の一意のインデックスを作成します。これにより、任意のスキルの最新 (最高) のスキル レベルを選択できます。
スキルの初期進行レベルを設定するには、もう 1 つのテーブルが必要です。
Initial
-------
Initial ID
Skill ID
Initial Level
初期 ID は、初期テーブルのプライマリ (クラスタリング) キーです。これは、自動インクリメント整数または long です。
データ要素をデータベース テーブルに編成するこのプロセスは、正規化と呼ばれます。