2016-08-05 32 views
0

我正在研究涉及大量數據的程序,我想知道最好的表結構是什麼。首選表結構

我的想法是將玩家的所有統計數據保存在數據庫中。統計數字stat_type可以更改,這意味着可以在某個點添加新的stat_type

這個結構是我的第一個想法。

列:int playerID, VARCHAR stat_type, DOUBLE stat_value

一個例子一行是:1, "kills", 15

這種結構是我的第二個觀點。

使用此結構,可能會在某個點添加新列。這個結構所需的行數比先前的結構少,但最後會有更多的列。

列:int playerID, DOUBLE kills

一個例子一行是:1, 15

其中這些結構將是更好的性能明智?

+2

問題是問「哪裏我開始「通常太寬泛,並不適合這個網站。人們有自己的方法來解決這個問題,正因爲如此,沒有一個正確的答案。請仔細閱讀[**從哪裏開始**](// meta.programmers.stackexchange.com/questions/6366/where-to-start/6367#6367),然後解決您的文章。 – FrankerZ

回答

0

Option1是你想要的。您可以在不更改數據庫設計或應用程序邏輯的情況下添加以後需要的任何統計信息。

Option2當你改變模式時,你必須測試所有連接到該表的東西在這些改變之後仍然有效,這是一個很大的噩夢。

例如與選項1:可以用選項2添加新的統計數據,而不更改代碼

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

例如:如果添加新的統計數據需要更新您的代碼,包括統計

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

我不明白爲什麼添加新列會導致很多問題。你能詳細說明嗎? –

+0

檢查我的編輯代碼。 –