2016-07-09 32 views
0

Ich mache eine Multiplayer-Spiel (rundenbasierte) App, die während des Spiels Matchdaten zwischen den Spielern tauschen muss. Nach dem Match sind die Round-Daten nutzlos.Best Practices für "Semi-Temporäre" -Tabellen

Welche Best Practices für die Behandlung dieser Szenarios gibt es?

Ich dachte an:

  • Tabellen erstellen, die für die Dauer des Spiels gibt, die die Namenskonvention von „Round“ + MatchID haben. Also würde es für jedes instanziierte Match 1 Tabelle geben. Am Ende eines Spiels wird diese Tabelle gelöscht.

  • Haben Sie nur 1 Runde Tabelle und am Ende einer Übereinstimmung, löschen Sie alle Zeilen, in denen MatchId = abgeschlossen Match.

Ich bin nicht sicher, welcher Ansatz die beste Leistung ist. Gibt es eine Anleitung zu diesem Thema? Ich bin mir auch nicht sicher, welches Szenario 1 genannt werden würde. Ich weiß, dass die Begriffe "temporär" und "transient" für andere Anwendungsfälle reserviert sind.

+1

Ein dynamisches Datenbankdesign ist ungewöhnlich und sollte vermieden werden. Verwenden Sie eine Tabelle. –

+0

Sie können eine Spalte für die Match-ID hinzufügen und eine Bereinigung durchführen, wenn die Übereinstimmung abgeschlossen ist. – maraca

Antwort

0

Im Allgemeinen sind solche temporären Tabellen wahrscheinlich nicht die beste Idee. Die bessere Lösung ist eine einzige Tabelle für alle Übereinstimmungen zu haben. Sie können Zeilen in die Tabellen einfügen, sie ändern und so weiter den Schlüssel für die bestimmte Übereinstimmung verwenden.

Die Geschichte dessen, was während eines Spiels passiert, kann sehr praktisch sein. Wenn Sie jedoch die Zeilen für eine bestimmte Übereinstimmung löschen möchten, können Sie dies tun, wenn die Übereinstimmung endet oder zu einem anderen geeigneten Zeitpunkt.