我正在創建幻想足球遊戲,我有一個關於如何設計我的數據庫的問題。我很難設計一種在聯賽之間分享球員的方式,並且仍然將其規範化。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