Загрузка данных
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;