Загрузка данных


CREATE TABLE IF NOT EXISTS Игрок (
 id_игрока INTEGER NOT NULL AUTO_INCREMENT,
 имя VARCHAR(50) NOT NULL,
 пароль VARCHAR(255) NOT NULL,
 уровень_игрока INTEGER DEFAULT 1,
 опыт_игрока INTEGER DEFAULT 0,
 победы INTEGER DEFAULT 0,
 поражения INTEGER DEFAULT 0,
 PRIMARY KEY(`id_игрока`)
);


CREATE TABLE IF NOT EXISTS Игровая_сессия (
 id_сессии INTEGER NOT NULL AUTO_INCREMENT,
 id_игрока1 INTEGER NOT NULL,
 id_игрока2 INTEGER NOT NULL,
 статус VARCHAR(20) DEFAULT 'waiting',
 текущий_ход INTEGER DEFAULT 0,
 победитель INTEGER,
 PRIMARY KEY(`id_сессии`)
);


CREATE TABLE IF NOT EXISTS Игроки_в_сессиях (
 id_игркои_в_сессиях INTEGER NOT NULL AUTO_INCREMENT,
 id_игрока INTEGER NOT NULL,
 id_сессии INTEGER NOT NULL,
 PRIMARY KEY(`id_игркои_в_сессиях`)
);


CREATE TABLE IF NOT EXISTS Покемона_игрока (
 id_покемона_игрока INTEGER NOT NULL AUTO_INCREMENT,
 id_покемона INTEGER NOT NULL,
 id_игрока INTEGER NOT NULL,
 никнейм VARCHAR(50),
 уровень INTEGER DEFAULT 1,
 текущее_hp INTEGER,
 текущий_опыт INTEGER DEFAULT 0,
 PRIMARY KEY(`id_покемона_игрока`)
);


CREATE TABLE IF NOT EXISTS Бой-ход (
 id_боя INTEGER NOT NULL AUTO_INCREMENT,
 id_инвенторя INTEGER NOT NULL,
 id_покемона_атакующего INTEGER NOT NULL,
 id_покемона_защищающегося INTEGER NOT NULL,
 id_атаки INTEGER NOT NULL,
 урон INTEGER DEFAULT 0,
 PRIMARY KEY(`id_боя`)
);


CREATE TABLE IF NOT EXISTS Покемон_в_бою (
 id_покемона_игрока INTEGER NOT NULL,
 id_игрока INTEGER NOT NULL,
 id_покемона_в_бою INTEGER NOT NULL AUTO_INCREMENT,
 id_сессии INTEGER NOT NULL,
 текущее_hp INTEGER NOT NULL,
 статус_в_бою VARCHAR(20) DEFAULT 'active',
 позиция INTEGER DEFAULT 1,
 PRIMARY KEY(`id_покемона_в_бою`)
);


CREATE TABLE IF NOT EXISTS Покемоны (
 id_покемона INTEGER NOT NULL AUTO_INCREMENT,
 имя VARCHAR(50) NOT NULL,
 стихия VARCHAR(20) NOT NULL,
 базовое_hp INTEGER NOT NULL,
 базовая_атака INTEGER NOT NULL,
 базовая_защита INTEGER NOT NULL,
 базовая_скорость INTEGER NOT NULL,
 PRIMARY KEY(`id_покемона`)
);


CREATE TABLE IF NOT EXISTS Инвентарь (
 id_игрока INTEGER NOT NULL,
 id_инвентаря INTEGER NOT NULL AUTO_INCREMENT,
 id_предмета INTEGER NOT NULL,
 количество INTEGER DEFAULT 1,
 PRIMARY KEY(`id_инвентаря`)
);


CREATE TABLE IF NOT EXISTS Предметы (
 id_предмета INTEGER NOT NULL AUTO_INCREMENT,
 название VARCHAR(50) NOT NULL,
 тип VARCHAR(30) NOT NULL,
 эффект INTEGER NOT NULL,
 PRIMARY KEY(`id_предмета`)
);


CREATE TABLE IF NOT EXISTS Атаки_покемонов (
 id_атаки INTEGER NOT NULL AUTO_INCREMENT,
 id_покемона INTEGER NOT NULL,
 id_атаки_базовой INTEGER NOT NULL,
 уровень_изучения INTEGER DEFAULT 1,
 PRIMARY KEY(`id_атаки`)
);


ALTER TABLE Игрок
ADD FOREIGN KEY(`id_игрока`) REFERENCES `Инвентарь`(`id_игрока`)
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE Инвентарь
ADD FOREIGN KEY(`id_предмета`) REFERENCES `Предметы`(`id_предмета`)
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE Инвентарь
ADD FOREIGN KEY(`id_инвентаря`) REFERENCES `Бой-ход`(`id_инвенторя`)
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE Игрок
ADD FOREIGN KEY(`id_игрока`) REFERENCES `Игроки_в_сессиях`(`id_игрока`)
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE Игровая_сессия
ADD FOREIGN KEY(`id_сессии`) REFERENCES `Игроки_в_сессиях`(`id_сессии`)
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE Покемоны
ADD FOREIGN KEY(`id_покемона`) REFERENCES `Атаки_покемонов`(`id_покемона`)
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE Покемоны
ADD FOREIGN KEY(`id_покемона`) REFERENCES `Покемона_игрока`(`id_покемона`)
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE Покемона_игрока
ADD FOREIGN KEY(`id_игрока`) REFERENCES `Игрок`(`id_игрока`)
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE Покемона_игрока
ADD FOREIGN KEY(`id_покемона_игрока`) REFERENCES `Покемон_в_бою`(`id_покемона_игрока`)
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE Игроки_в_сессиях
ADD FOREIGN KEY(`id_игрока`) REFERENCES `Покемон_в_бою`(`id_игрока`)
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE Покемон_в_бою
ADD FOREIGN KEY(`id_покемона_в_бою`) REFERENCES `Бой-ход`(`id_покемона_атакующего`)
ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE Покемон_в_бою
ADD FOREIGN KEY(`id_покемона_в_бою`) REFERENCES `Бой-ход`(`id_покемона_защищающегося`)
ON UPDATE NO ACTION ON DELETE NO ACTION;