-- 1. Tabelle für die Spiel-Typen (z.B. Klassik, Puzzle, Kids) CREATE TABLE IF NOT EXISTS `game_typen` ( `id` int(11) NOT NULL AUTO_INCREMENT, `bezeichnung` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- 2. Tabelle für die Spieler / Teams CREATE TABLE IF NOT EXISTS `spieler` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- 3. Haupttabelle für die Spiele CREATE TABLE IF NOT EXISTS `spiele` ( `id` int(11) NOT NULL AUTO_INCREMENT, `titel` varchar(255) NOT NULL, `typ_id` int(11) DEFAULT NULL, `ean` varchar(50) NOT NULL, `level` enum('Unknown','Einsteiger','Fortgeschrittene','Profi') DEFAULT 'Unknown', `bild_url` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `ean_unique` (`ean`), KEY `fk_typ` (`typ_id`), CONSTRAINT `fk_typ` FOREIGN KEY (`typ_id`) REFERENCES `game_typen` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- 4. Tabelle für die Highscores CREATE TABLE IF NOT EXISTS `scores` ( `id` int(11) NOT NULL AUTO_INCREMENT, `spiel_id` int(11) NOT NULL, `spieler_id` int(11) NOT NULL, `zeit` int(11) NOT NULL COMMENT 'Zeit in Minuten', `hilfe` int(11) DEFAULT 0 COMMENT 'Anzahl der Hilfekarten', `sterne` int(11) DEFAULT NULL COMMENT 'Bewertung 1-10', `gespielt_am` timestamp NOT NULL DEFAULT current_timestamp(), PRIMARY KEY (`id`), KEY `fk_spiel_score` (`spiel_id`), KEY `fk_spieler_score` (`spieler_id`), CONSTRAINT `fk_spiel_score` FOREIGN KEY (`spiel_id`) REFERENCES `spiele` (`id`) ON DELETE CASCADE, CONSTRAINT `fk_spieler_score` FOREIGN KEY (`spieler_id`) REFERENCES `spieler` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- 5. Tabelle für den Besitzstatus CREATE TABLE IF NOT EXISTS `besitzstatus` ( `spieler_id` int(11) NOT NULL, `spiel_id` int(11) NOT NULL, `status` enum('besitzt','nicht besitzt','verkauft') DEFAULT 'nicht besitzt', PRIMARY KEY (`spieler_id`,`spiel_id`), KEY `fk_spiel_besitz` (`spiel_id`), CONSTRAINT `fk_spiel_besitz` FOREIGN KEY (`spiel_id`) REFERENCES `spiele` (`id`) ON DELETE CASCADE, CONSTRAINT `fk_spieler_besitz` FOREIGN KEY (`spieler_id`) REFERENCES `spieler` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;