Neue Datenbank-Struktur #88

Open
opened 2025-12-10 13:15:29 +00:00 by gelbeinhalb · 13 comments
Owner

Neue Datenbank-Struktur

image.png

Table playerTable {
  id uuid [pk]
  name varchar [not null]
  createdAt timestamptz [not null]  
  description text
}

Table groupTable {
  id uuid [pk]
  name varchar [not null]
  createdAt timestamptz [not null]  
  description text
}

Table gameTable {
  id uuid [pk]
  name varchar [not null]
  ruleset varchar [not null]
  description text
  color varchar
  icon varchar
}

Table matchTable {
  id uuid [pk]
  gameId uuid [not null]
  createdAt timestamptz [not null]
  groupId uuid
  notes text
}
Ref: matchTable.gameId > gameTable.id
Ref: matchTable.groupId > groupTable.id

Table teamTable {
  id uuid [pk]
  name varchar [not null]
}

Table scoreTable {
  userId uuid [pk]
  matchId uuid [pk]
  roundNumber integer [pk]
  score integer
  change integer
}
Ref: scoreTable.userId > playerTable.id
Ref: scoreTable.matchId > matchTable.id

Table playerGroupTable {
  userId uuid [not null]
  groupId uuid [not null]
}
Ref: playerGroupTable.userId > playerTable.id
Ref: playerGroupTable.groupId > groupTable.id

Table playerMatchTable {
  userId uuid [pk]
  matchId uuid [pk]
  score integer [not null]
  teamId uuid
}
Ref: playerMatchTable.userId > playerTable.id
Ref: playerMatchTable.matchId > matchTable.id
Ref: playerMatchTable.teamId > teamTable.id
# Neue Datenbank-Struktur ![image.png](/attachments/fcf6d48a-49a7-43f8-a977-dd211ef7d54b) ```dbdiagram Table playerTable { id uuid [pk] name varchar [not null] createdAt timestamptz [not null] description text } Table groupTable { id uuid [pk] name varchar [not null] createdAt timestamptz [not null] description text } Table gameTable { id uuid [pk] name varchar [not null] ruleset varchar [not null] description text color varchar icon varchar } Table matchTable { id uuid [pk] gameId uuid [not null] createdAt timestamptz [not null] groupId uuid notes text } Ref: matchTable.gameId > gameTable.id Ref: matchTable.groupId > groupTable.id Table teamTable { id uuid [pk] name varchar [not null] } Table scoreTable { userId uuid [pk] matchId uuid [pk] roundNumber integer [pk] score integer change integer } Ref: scoreTable.userId > playerTable.id Ref: scoreTable.matchId > matchTable.id Table playerGroupTable { userId uuid [not null] groupId uuid [not null] } Ref: playerGroupTable.userId > playerTable.id Ref: playerGroupTable.groupId > groupTable.id Table playerMatchTable { userId uuid [pk] matchId uuid [pk] score integer [not null] teamId uuid } Ref: playerMatchTable.userId > playerTable.id Ref: playerMatchTable.matchId > matchTable.id Ref: playerMatchTable.teamId > teamTable.id ```
flixcoo added a new dependency 2025-12-10 13:16:15 +00:00
Author
Owner

@flixcoo kannst du nochmal gucken ob das alles passt?
Viel umzubenennen gab es ja nicht, da wir game ja noch zu match umbenennen/differenzieren

@flixcoo kannst du nochmal gucken ob das alles passt? Viel umzubenennen gab es ja nicht, da wir game ja noch zu match umbenennen/differenzieren
flixcoo changed title from Neue Datenbank Struktur to Neue Datenbank-Struktur 2025-12-10 13:16:47 +00:00
Author
Owner
https://dbdiagram.io
Owner

Du musst das erstmal noch an unsere Datenbank anpassen, dazu zählst z.B.

  • uuid umbenennen zu playerId, groupId, matchId (bzw. x_id, schreibweise ist ja erstmal egal)
  • Attribute von den Tabellen ergänzen (z.B. winner bei match, createdAtbei player und group)
  • Alle Tabellennamen an die aktuell implementierten Tabellen anpassen und Schema bei neuen Tabellen anwenden (z.B. x_y_table bei Verbindungstabellen)
Du musst das erstmal noch an unsere Datenbank anpassen, dazu zählst z.B. - `uuid` umbenennen zu `playerId`, `groupId`, `matchId` (bzw. `x_id`, schreibweise ist ja erstmal egal) - Attribute von den Tabellen ergänzen (z.B. `winner` bei `match`, `createdAt`bei `player` und `group`) - Alle Tabellennamen an die aktuell implementierten Tabellen anpassen und Schema bei neuen Tabellen anwenden (z.B. `x_y_table` bei Verbindungstabellen)
flixcoo added the
Layer
DB
Priority
High
2
Task
Feature
labels 2025-12-10 13:23:37 +00:00
flixcoo added this to the Alpha milestone 2025-12-10 13:23:40 +00:00
Author
Owner

ahh ye warte

ahh ye warte
Author
Owner

group_game_table ist doch mies unnötig oder?

group_game_table ist doch mies unnötig oder?
Owner

group_game_table ist doch mies unnötig oder?

ja der kann weg

> group_game_table ist doch mies unnötig oder? ja der kann weg
Owner

und ggf. (hatte mathis noch angebracht) soll die id der jeweiligen klasse einfach id heißen, anstatt wie vorher. Also in der Player Table z.B. sollte es keine playerId mehr geben sondern die sollte id genannt werden. Alle foreign keys sollten natürlich trotzdem gameId oder so heißen

und ggf. (hatte mathis noch angebracht) soll die id der jeweiligen klasse einfach `id` heißen, anstatt wie vorher. Also in der Player Table z.B. sollte es keine `playerId` mehr geben sondern die sollte `id` genannt werden. Alle foreign keys sollten natürlich trotzdem `gameId` oder so heißen
Owner

Aber playerId, groupId etc. sind doch unnötig, da es sich auf den Player bezieht, ist doch durch die Tabelle klar. In einer Klasse würde man ja auch nicht der Klasse player das Attribut Playerid geben.

Aber playerId, groupId etc. sind doch unnötig, da es sich auf den Player bezieht, ist doch durch die Tabelle klar. In einer Klasse würde man ja auch nicht der Klasse player das Attribut Playerid geben.
Author
Owner

@flixcoo hab angepasst

auf @mathiskir und meinen Wunsch ist die winnerId in der matchTable raus

@flixcoo hab angepasst auf @mathiskir und meinen Wunsch ist die `winnerId` in der `matchTable` raus
gelbeinhalb self-assigned this 2025-12-11 15:50:45 +00:00
Author
Owner

und ggf. (hatte mathis noch angebracht) soll die id der jeweiligen klasse einfach id heißen, anstatt wie vorher. Also in der Player Table z.B. sollte es keine playerId mehr geben sondern die sollte id genannt werden. Alle foreign keys sollten natürlich trotzdem gameId oder so heißen

Das hatte ich sowieso so gemacht.
Dachte das meintest du vorher auch so

> und ggf. (hatte mathis noch angebracht) soll die id der jeweiligen klasse einfach `id` heißen, anstatt wie vorher. Also in der Player Table z.B. sollte es keine `playerId` mehr geben sondern die sollte `id` genannt werden. Alle foreign keys sollten natürlich trotzdem `gameId` oder so heißen Das hatte ich sowieso so gemacht. Dachte das meintest du vorher auch so
flixcoo added the due date 2026-01-04 2025-12-15 19:20:18 +00:00
flixcoo added a new dependency 2026-01-03 11:30:10 +00:00
flixcoo added a new dependency 2026-01-03 11:30:39 +00:00
gelbeinhalb removed the due date 2026-01-04 2026-01-05 09:57:08 +00:00
flixcoo added
Priority
Critical
1
and removed
Priority
High
2
labels 2026-01-09 11:27:16 +00:00
Owner

Match-Objekt brauch TeamMatch-Flag (o.Ä.) um anzuzeigen, dass es sich um ein Team-Match handelt

`Match`-Objekt brauch `TeamMatch`-Flag (o.Ä.) um anzuzeigen, dass es sich um ein Team-Match handelt
Owner

Team-Klasse und Pair-Klasse mit

class Pair extends Team
`Team`-Klasse und `Pair`-Klasse mit ```dart class Pair extends Team ```
sneeex added a new dependency 2026-01-09 21:36:11 +00:00
sneeex removed a dependency 2026-01-09 21:37:28 +00:00
Owner

Bitte für...

  • Group eine Update Funktion wodurch man Member und Name ändern kann
  • Match eine Update Funktion wodurch man game, createdAt, group, notes ändern kann

(hab eventuell auch was vergessen, denk nochmal nach)

Bitte für... - Group eine Update Funktion wodurch man Member und Name ändern kann - Match eine Update Funktion wodurch man game, createdAt, group, notes ändern kann (hab eventuell auch was vergessen, denk nochmal nach)
sneeex added a new dependency 2026-01-10 19:18:00 +00:00
sneeex added a new dependency 2026-01-10 19:18:32 +00:00
Sign in to join this conversation.
3 Participants
Notifications
Due Date
No due date set.
Blocks
#118 Bearbeiteten und Löschen von Gruppen
liquid-development/game-tracker
#119 Implementierung der Games
liquid-development/game-tracker
#132 Verschiedene Regelsätze implementieren
liquid-development/game-tracker
#148 WIP: Bearbeiten und Löschen von Gruppen
liquid-development/game-tracker
Depends on
#78 Game zu Match umbenennen
liquid-development/game-tracker
Reference: liquid-development/game-tracker#88