install.sql 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. -- 1. Tabelle für die Spiel-Typen (z.B. Klassik, Puzzle, Kids)
  2. CREATE TABLE IF NOT EXISTS `game_typen` (
  3. `id` int(11) NOT NULL AUTO_INCREMENT,
  4. `bezeichnung` varchar(100) NOT NULL,
  5. PRIMARY KEY (`id`)
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  7. -- 2. Tabelle für die Spieler / Teams
  8. CREATE TABLE IF NOT EXISTS `spieler` (
  9. `id` int(11) NOT NULL AUTO_INCREMENT,
  10. `name` varchar(100) NOT NULL,
  11. PRIMARY KEY (`id`),
  12. UNIQUE KEY `name` (`name`)
  13. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  14. -- 3. Haupttabelle für die Spiele
  15. CREATE TABLE IF NOT EXISTS `spiele` (
  16. `id` int(11) NOT NULL AUTO_INCREMENT,
  17. `titel` varchar(255) NOT NULL,
  18. `typ_id` int(11) DEFAULT NULL,
  19. `ean` varchar(50) NOT NULL,
  20. `level` enum('Unknown','Einsteiger','Fortgeschrittene','Profi') DEFAULT 'Unknown',
  21. `bild_url` varchar(255) DEFAULT NULL,
  22. PRIMARY KEY (`id`),
  23. UNIQUE KEY `ean_unique` (`ean`),
  24. KEY `fk_typ` (`typ_id`),
  25. CONSTRAINT `fk_typ` FOREIGN KEY (`typ_id`) REFERENCES `game_typen` (`id`) ON DELETE SET NULL
  26. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  27. -- 4. Tabelle für die Highscores
  28. CREATE TABLE IF NOT EXISTS `scores` (
  29. `id` int(11) NOT NULL AUTO_INCREMENT,
  30. `spiel_id` int(11) NOT NULL,
  31. `spieler_id` int(11) NOT NULL,
  32. `zeit` int(11) NOT NULL COMMENT 'Zeit in Minuten',
  33. `hilfe` int(11) DEFAULT 0 COMMENT 'Anzahl der Hilfekarten',
  34. `sterne` int(11) DEFAULT NULL COMMENT 'Bewertung 1-10',
  35. `gespielt_am` timestamp NOT NULL DEFAULT current_timestamp(),
  36. PRIMARY KEY (`id`),
  37. KEY `fk_spiel_score` (`spiel_id`),
  38. KEY `fk_spieler_score` (`spieler_id`),
  39. CONSTRAINT `fk_spiel_score` FOREIGN KEY (`spiel_id`) REFERENCES `spiele` (`id`) ON DELETE CASCADE,
  40. CONSTRAINT `fk_spieler_score` FOREIGN KEY (`spieler_id`) REFERENCES `spieler` (`id`) ON DELETE CASCADE
  41. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  42. -- 5. Tabelle für den Besitzstatus
  43. CREATE TABLE IF NOT EXISTS `besitzstatus` (
  44. `spieler_id` int(11) NOT NULL,
  45. `spiel_id` int(11) NOT NULL,
  46. `status` enum('besitzt','nicht besitzt','verkauft') DEFAULT 'nicht besitzt',
  47. PRIMARY KEY (`spieler_id`,`spiel_id`),
  48. KEY `fk_spiel_besitz` (`spiel_id`),
  49. CONSTRAINT `fk_spiel_besitz` FOREIGN KEY (`spiel_id`) REFERENCES `spiele` (`id`) ON DELETE CASCADE,
  50. CONSTRAINT `fk_spieler_besitz` FOREIGN KEY (`spieler_id`) REFERENCES `spieler` (`id`) ON DELETE CASCADE
  51. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;