0

一部のデータがソースになるために静的でなければならない場合

テーブル 人物A (静的) 幸福度 0

そして、ユーザーのプレイの進行状況を保存するためのテーブルが必要です

表 User_1_Person_A 幸福 5

データベースをスマートに設計するにはどうすればよいですか? 私の唯一の考えは

テーブル Person_A 幸福 5 User_id 1

ただし、2 つのテーブル列は同じになります。悪いデザインですか?ありがとう

4

1 に答える 1

1

ご質問の内容を推測させていただきます。

進捗

進行状況を追跡したい場合は、タイムスタンプ付きのテーブルが必要です。

テーブルを定義する方法は次のとおりです。

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 です。

概要

データ要素をデータベース テーブルに編成するこのプロセスは、正規化と呼ばれます。

于 2013-07-17T15:35:06.817 に答える