2016-08-05 10 views
0

私は多くのデータを必要とするプログラムに取り組んでおり、私は最高のテーブル構造がなにかと思っています。好ましいテーブル構造

私の考えは、プレーヤーのすべての統計をデータベースに保存することです。 stat_typeという名前の統計情報は変更することができます。つまり、特定の時点で新しいstat_typeを追加することができます。

この構造が私の最初のアイデアでした。

列:int playerID, VARCHAR stat_type, DOUBLE stat_value

例の行は次のようになります。1, "kills", 15

この構造は、私の第二の考えでした。

この構造では、ある時点で新しい列が追加される可能性があります。この構造は以前の構造より少ない行しか必要としませんが、最後にはもっと多くの列があります。

列:int playerID, DOUBLE kills

例の行は次のようになります。

1, 15は、これらの構造の方が良いだろう性能面?

+2

質問を含めるようにコードを更新する必要がある場合「私は始まりますか? "は一般に広すぎ、このサイトには適していません。人々は問題に近づくための独自の方法を持っており、そのために_correct_答えはありえません。 [** Where to Start **](// meta.programmers.stackexchange.com/questions/6366/where-to-start/6367#6367)をよく読んで、あなたの投稿に対処してください。 – FrankerZ

答えて

0

オプション1はあなたが望むものです。 dbデザインやアプリケーションロジックを変更せずに、後で必要な統計情報を追加できます。

オプション2スキーマを変更すると、そのテーブルに接続されているすべてのものをテストする必要があります。これらの変更を行っても、大きな変更はありません。オプション1と

例:オプション2で

data = getdata_from_db(); 
foreach item in data 
{ 
    <th> item.stat_type </th> 
} 

コードを変更せずに例を新規の統計情報を追加することができます追加、新たな統計は、そのSTATに尋ねる

data = getdata_from_db(); 
<th> item.needKnowFieldName1 </th> 
<th> item.needKnowFieldName2 </th> 
<th> item.needKnowFieldName3 </th> 
+0

なぜ私は新しい列を追加すると非常に多くの問題が発生するのか分かりません。あなたは精緻化できますか? –

+0

私の編集コードをチェックしてください。 –

関連する問題