我正在创建幻想足球游戏,我有一个关于如何设计我的数据库的问题。我很难设计一种在联赛之间分享球员的方式,并且仍然将其规范化。SQL - 规范化问题
有一张桌子,上面有所有可能的足球运动员称为球员,包含球队信息的表格称为球队,包含用户信息的表格称为用户,包含联盟信息的表格和保留所有其他表格的表格编号叫做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)
)
查询“使玩家在数据库中不可用,使不同的联赛可以起草相同的球员。”不计算。 – Strawberry
不同的联赛有相同的球员选择。 – John