2016-08-05 36 views
0

Ich arbeite an einem Programm, das eine Menge Daten enthält und ich frage mich, was die beste Tabellenstruktur wäre.Bevorzugte Tabellenstruktur

Meine Idee ist, alle Statistiken eines Spielers in einer Datenbank zu speichern. Die Statistik, genannt stat_type, kann sich ändern, so dass ein neuer stat_type an einem bestimmten Punkt hinzugefügt werden kann.

Diese Struktur war meine erste Idee.

Spalten: int playerID, VARCHAR stat_type, DOUBLE stat_value

Ein Beispiel Reihe sein würde: 1, "kills", 15

Diese Struktur war meine zweite Idee.

Mit dieser Struktur ist es möglich, dass an einem bestimmten Punkt eine neue Spalte hinzugefügt wird. Diese Struktur benötigt weniger Zeilen als die vorherige Struktur, hat aber am Ende mehr Spalten.

Spalten: int playerID, DOUBLE kills

Ein Beispiel Reihe sein würde: 1, 15

Welche dieser Strukturen würden eine bessere Performance-weise sein?

+2

Fragen, die fragen, „wo fange ich an "sind in der Regel zu breit und eignen sich nicht gut für diese Website. Die Leute haben ihre eigene Methode, um das Problem anzugehen, und deshalb kann es keine richtige Antwort geben. Werfen Sie einen guten Blick auf [** Where to Start **] (// meta.programmers.stackexchange.com/questions/6366/where-to-start/6367#6367), dann adressieren Sie Ihren Beitrag. – FrankerZ

Antwort

0

Option1 ist das, was Sie wollen. Sie können später beliebige Statistiken hinzufügen, ohne das Design Ihrer Datenbank oder Ihre Anwendungslogik zu ändern.

Option2, wenn Sie das Schema ändern, müssen Sie alles, das mit dieser Tabelle verbunden ist, immer noch arbeiten, nachdem diese Änderung, großer maneince Albtraum.

Beispiel mit option1: können neue Statistiken hinzufügen, ohne Codeänderung

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

Beispiel mit option2: wenn neue Statistiken hinzufügen müssen Sie den Code aktualisieren umfasst, das den stat

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

Ich verstehe nicht, warum das Hinzufügen einer neuen Spalte so viele Probleme verursachen würde. Kannst du es ausarbeiten? –

+0

Überprüfen Sie meinen Bearbeitungscode. –