Я создаю фэнтези-футбол, и у меня есть вопрос о том, как создать свою базу данных. Мне сложно разработать способ распределения игроков между лигами и нормализовать его.
Есть таблица со всеми возможными футболистами под названием Players, таблица, которая содержит информацию о командах под названием Teams, таблица, которая содержит информацию о пользователях под названием Users, таблица, которая содержит информацию о лиге, и таблица, в которой хранятся все другие идентификаторы таблиц, называемые Rosters.
В основном есть лига, в которой есть определенное количество игроков, после начала драфта игроки становятся командой, и если они принадлежат к команде, они больше не могут быть выбраны. Проблема, с которой я столкнулся, заключается в том, что я делю этих игроков с несколькими лигами. В настоящее время у меня есть логическое значение, установленное для игрока, если они доступны или нет. Это работает до тех пор, пока другая лига не попытается набрать этого игрока, потому что они были недоступны.
У меня вопрос: как сделать игрока доступным / недоступным в базе данных, чтобы в разных лигах был одинаковый выбор игроков? Есть ли лучший способ настроить эту базу данных?
Составы
CREATE TABLE Rosters (
RostersID INT NOT NULL AUTO_INCREMENT ,
LeagueID INT NOT,
TeamID INT NOT NULL ,
PlayerID INT NOT NULL ,
UserID INT NOT NULL ,
PRIMARY KEY (RostersID)
)
Лиги
CREATE TABLE Leagues (
LeagueID INT NOT NULL AUTO_INCREMENT ,
LeagueName VARCHAR(35) NOT NULL ,
PRIMARY KEY (LeagueID)
)
Команды
CREATE TABLE Teams (
TeamID INT NOT NULL AUTO_INCREMENT ,
TeamName VARCHAR(35) NOT NULL ,
StateCode CHAR(3) NOT NULL ,
Ranking INT NOT NULL DEFAULT '0',
PRIMARY KEY (TeamID)
)
Пользователи
CREATE TABLE Users (
UserID INT NOT NULL AUTO_INCREMENT ,
UserName VARCHAR(45) NOT NULL ,
Email VARCHAR(55) NOT NULL ,
Password VARCHAR(45) NOT NULL ,
PRIMARY KEY (UserID)
)
Игроки
CREATE TABLE Players (
PlayerID INT NOT NULL AUTO_INCREMENT ,
LastName VARCHAR(50) NULL ,
FirstName VARCHAR(50) NULL ,
Postion VARCHAR NULL ,
Available BOOLEAN NOT NULL DEFAULT FALSE ,
PRIMARY KEY (PlayerID)
)