Ratschlag zu Datenspeicherung

  • Hallo Leute


    Meine SqLite Kentnisse sind nicht noch nicht so gut bin immer noch am lernen wie alle Befehle genau funktionieren.
    Also es ist so im moment benutze ich eine Sqlite Datei mit 3Tabellen, in zwei werden Daten wie PlayerName, Kills,Deaths, Suicides gesammelt und in der andere nur die aktuelle map die gerade gespielt wird.
    Die Permanent-Stats-Tabelle hat inzwischen über 6000 Zeilen. Die Aktuelle-Stats-Tabelle hat maximal 16 zeilen je nachdem wieviele Spieler sich gerade auf dem Server befinden, wenn ein Spieler den Server verlässt werden seine einträge aus der Tabelle entfernt und wenn alle den Server verlassen wird die Tabelle geleehrt. Bei der Aktuelle-Map-Tabelle gibt es nur eine Zeile und eine Spalte.
    Die Sqlite Datei wurde auf unsere Clan Webseite hochgeladen und mit PHP in einer Tabellen angezeigt aber leider kommt es immer wieder zu Zugriffs-Problemen.

    Wie kann ich das besser lösen kann?

    Da die Aktuelle-Map-Tabelle nur gebraucht wird um die aktuelle Map einzutragen, könnte ich sie löschen und eine Text Datei dafür nehmen.
    Ist Sqlite überhaupt geeignet um in kurzen abständen Daten aufzunehmen, auszugeben, entfernen im sekunden Takt und das für ca 24 stunden am Tag oder für mehere Tage am laufenden Band?

    Einmal editiert, zuletzt von VinceA (17. November 2015 um 22:42)

  • So wie sich das anhört ist das eher nicht für SQLite gedacht. Datenbanken dienen meistens dazu, Daten länger zu speichern. Ihre stärke ist, dass die Daten Platzsparend abgelegt werden können und auch schnell gefunden werden können. SInd also auch eher für große Datenmengen gedacht. Ich meine mich zu entsinnen, dass das schreiben aber etwas länger dauert. Allgemein, wenn du nur 16 Spieler hast würde ich eine Ini-Datei nehmen, oder einfach eine Textdatei.
    Die Permanenten Daten kann man so speichern, diese würde ich aber erst nach einem Spiel dort eintragen, damit hast du nur je Game eine Aktualisierung.

  • Was mir nicht ganz aus der Frage herausgeht, was willst du denn besser lösen?

    Datenhaltung braucht üblicherweise sehr sehr viel Planung, und dazu ist es wichtig das gesamte Projekt von Anfang an gut zu planen.

    Ich nehme an es geht um ein Spiel. Jetzt hätte ich die Fragen:
    - Was ist das für ein Spiel (Art)?
    - Wo läuft dieses Spiel (Browser/Game/Whatever)?
    - Was sind K.O. Kriterien für die Datenhaltung?
    - Was sind Pflicht Kriterien für die Datenhaltung?
    - Von welchen Dimensionen reden wir?
    - ...

    Wenn du ein Scheere, Stein, Papier programmierst das online läuft, und Spielernamen sowie die Anzahl der gewonnenen Runden pro Spieler speichert, wird SQL solange funktionieren, wie du gewährleistest, dass Daten auch nachträglich eingetragen werden önnen, da SQLite nicht Multi-User fähig ist (mein Stand, sollte sich hier was geändert haben bitte korrigieren). Wenn wir realistisch sind, wird dein RPS dann eher nicht den Hype auslösen und Millionen-Spieler finden. Das sind alles Punkte die (zumindest mir) fehlen, um einen Rat geben zu können.

    Noch ein Stichwort zu so einem Projekt:
    - 3-Schichten-Architektur, ich denke das ist, was hier für den ersten Start ein Weg zum Ziel sein könnte.

    Grüße Yaerox

    Grüne Hölle