12. Anhang: Datenbankschema

Wichtig

Sichern Sie immer Ihre .db-Datei, bevor Sie Datenbankmigrationen durchführen.

12.1. Version 1.0.0

Version 1.0.0 der Datenbank enthält die folgenden Tabellen:

  • position: Speichert die Positionen mit den Spalten id (Primärschlüssel) und state (Zustand der Position im JSON-Format).

  • analysis: Speichert die Analysen der Positionen mit den Spalten id (Primärschlüssel), position_id (Fremdschlüssel auf position) und data (Analysedaten im JSON-Format).

  • comment: Speichert die mit den Positionen verknüpften Kommentare mit den Spalten id (Primärschlüssel), position_id (Fremdschlüssel auf position) und text (Kommentartext).

  • metadata: Speichert die Metadaten der Datenbank mit den Spalten key (Primärschlüssel) und value (mit dem Schlüssel verknüpfter Wert).

12.2. Version 1.1.0

Version 1.1.0 der Datenbank fügt die folgende Tabelle hinzu:

  • command_history: Speichert den Befehlsverlauf mit den Spalten id (Primärschlüssel), command (Text des Befehls) und timestamp (Datum und Uhrzeit der Befehlsausführung).

Die übrigen Tabellen bleiben gegenüber Version 1.0.0 unverändert.

Um die Datenbank von Version 1.0.0 auf Version 1.1.0 zu migrieren, führen Sie den Befehl migrate_from_1_0_to_1_1 in blunderDB aus.

12.3. Version 1.2.0

Version 1.2.0 der Datenbank fügt die folgende Tabelle hinzu:

  • filter_library: Speichert Suchfilter mit den Spalten id (Primärschlüssel), name (Filtername), command (mit dem Filter verknüpfter Befehl) und edit_position (beim Speichern des Filters bearbeitete Position).

Die übrigen Tabellen bleiben gegenüber Version 1.1.0 unverändert.

Um die Datenbank von Version 1.1.0 auf Version 1.2.0 zu migrieren, führen Sie den Befehl migrate_from_1_1_to_1_2 in blunderDB aus.

12.4. Version 1.3.0

Version 1.3.0 der Datenbank fügt die folgende Tabelle hinzu:

  • search_history: Speichert den Verlauf der Positionssuchen mit den Spalten id (Primärschlüssel), command (Text des Suchbefehls), position (Zustand der Position zum Zeitpunkt der Suche) und timestamp (Datum und Uhrzeit der Suche).

Die übrigen Tabellen bleiben gegenüber Version 1.2.0 unverändert.

Um die Datenbank von Version 1.2.0 auf Version 1.3.0 zu migrieren, führen Sie den Befehl migrate_from_1_2_to_1_3 in blunderDB aus.

12.5. Version 1.4.0

Version 1.4.0 der Datenbank fügt die folgenden Tabellen für die Matchverwaltung hinzu:

  • match: Speichert die importierten Matches mit den Spalten id (Primärschlüssel), player1_name, player2_name, event, location, round, match_length, match_date, import_date, file_path, game_count und match_hash (Hash zur Duplikaterkennung).

  • game: Speichert die Partien eines Matches mit den Spalten id (Primärschlüssel), match_id (Fremdschlüssel auf match), game_number, initial_score_1, initial_score_2, winner, points_won und move_count.

  • move: Speichert die Züge einer Partie mit den Spalten id (Primärschlüssel), game_id (Fremdschlüssel auf game), move_number, move_type, position_id (Fremdschlüssel auf position), player, dice_1, dice_2, checker_move und cube_action.

  • move_analysis: Speichert die Analyse jedes Zuges mit den Spalten id (Primärschlüssel), move_id (Fremdschlüssel auf move), analysis_type, depth, equity, equity_error, win_rate, gammon_rate, backgammon_rate, opponent_win_rate, opponent_gammon_rate und opponent_backgammon_rate.

Die Migration von 1.3.0 auf 1.4.0 erfolgt automatisch beim Öffnen der Datenbank.

12.6. Version 1.5.0

Version 1.5.0 der Datenbank fügt die folgenden Tabellen für die Sammlungsverwaltung hinzu:

  • collection: Speichert Positionssammlungen mit den Spalten id (Primärschlüssel), name, description, sort_order, created_at und updated_at.

  • collection_position: Verknüpfungstabelle, die Positionen mit Sammlungen verknüpft, mit den Spalten id (Primärschlüssel), collection_id (Fremdschlüssel auf collection), position_id (Fremdschlüssel auf position), sort_order und added_at. Das Paar (collection_id, position_id) ist eindeutig.

Die Migration von 1.4.0 auf 1.5.0 erfolgt automatisch beim Öffnen der Datenbank.

12.7. Version 1.6.0

Version 1.6.0 der Datenbank fügt die folgende Tabelle für die Turnierverwaltung hinzu:

  • tournament: Speichert Turniere mit den Spalten id (Primärschlüssel), name, date, location, sort_order, created_at und updated_at.

  • Hinzufügen der Spalte tournament_id (Fremdschlüssel auf tournament) in der Tabelle match, um ein Match einem Turnier zuzuordnen.

Die Migration von 1.5.0 auf 1.6.0 erfolgt automatisch beim Öffnen der Datenbank.

12.8. Version 1.7.0

Version 1.7.0 der Datenbank fügt die folgende Spalte hinzu:

  • Hinzufügen der Spalte last_visited_position in der Tabelle match, um die zuletzt besuchte Position in jedem Match zu speichern.

Die Migration von 1.6.0 auf 1.7.0 erfolgt automatisch beim Öffnen der Datenbank.

Bemerkung

Seit Version 0.10.0 werden alle Datenbankmigrationen automatisch beim Öffnen einer Datenbankdatei durchgeführt.