У меня есть БД с 3 таблицами, для которой мне нужно создать таблицы аудита. Он содержит TTeams, TPlayers и TTeamPlayers. У меня возникла проблема при создании таблицы аудита для TTeamPlayers. Ниже приведен код для каждого. У меня особенно возникают проблемы с заявлениями ALTER. Какими должны быть внешние ключи? Должны ли они быть intTeamID и intPlayerID, или они должны быть intTeamAuditID и intPlayerAuditID? Я также понятия не имею, какими должны быть столбцы в таблице аудита для TTeamPlayers. Спасибо за любую помощь!
CREATE TABLE TTeams ( intTeamID INTEGER IDENTITY NOT NULL ,strTeam VARCHAR(50) NOT NULL ,strMascot VARCHAR(50) NOT NULL ,strModified_Reason VARCHAR(1000) ,CONSTRAINT TTeams_PK PRIMARY KEY ( intTeamID ) )
CREATE TABLE TPlayers
(
intPlayerID INTEGER IDENTITY NOT NULL
,strFirstName VARCHAR(50) NOT NULL
,strLastName VARCHAR(50) NOT NULL
,strModified_Reason VARCHAR(1000)
,CONSTRAINT TPlayers_PK PRIMARY KEY ( intPlayerID )
)
CREATE TABLE TTeamPlayers
(
intTeamPlayerID INTEGER IDENTITY NOT NULL
,intTeamID INTEGER NOT NULL
,intPlayerID INTEGER NOT NULL
,strModified_Reason VARCHAR(1000)
,CONSTRAINT PlayerTeam_UQ UNIQUE ( intTeamID, intPlayerID )
,CONSTRAINT TTeamPlayers_PK PRIMARY KEY ( intTeamPlayerID )
)
CREATE TABLE Z_TTeams
(
intTeamAuditID INTEGER IDENTITY NOT NULL
,intTeamID INTEGER NOT NULL
,strTeam VARCHAR(50) NOT NULL
,strMascot VARCHAR(50) NOT NULL
,UpdatedBy VARCHAR(50) NOT NULL
,UpdatedOn DATETIME NOT NULL
,strAction VARCHAR(10) NOT NULL
,strModified_Reason VARCHAR(1000)
,CONSTRAINT Z_TTeams_PK PRIMARY KEY ( intTeamAuditID )
)
CREATE TABLE Z_TPlayers
(
intPlayerAuditID INTEGER IDENTITY NOT NULL
,intPlayerID INTEGER NOT NULL
,strFirstName VARCHAR(50) NOT NULL
,strLastName VARCHAR(50) NOT NULL
,UpdatedBy VARCHAR(50) NOT NULL
,UpdatedOn DATETIME NOT NULL
,strAction VARCHAR(10) NOT NULL
,strModified_Reason VARCHAR(1000)
,CONSTRAINT Z_TPlayers_PK PRIMARY KEY ( intPlayerAuditID )
)
CREATE TABLE Z_TTeamPlayers
(
intTeamPlayerAuditID INTEGER IDENTITY NOT NULL
,intTeamID INTEGER NOT NULL
,intPlayerID INTEGER NOT NULL
,UpdatedBy VARCHAR(50) NOT NULL
,UpdatedOn DATETIME NOT NULL
,strAction VARCHAR(10) NOT NULL
,strModified_Reason VARCHAR(1000)
--,CONSTRAINT PlayerTeam_UQ UNIQUE ( intTeamID, intPlayerID )
,CONSTRAINT Z_TTeamPlayers_PK PRIMARY KEY ( intTeamPlayerAuditID )
)
-- ================================================================================
-- Step #1.2: Identify and Create Foreign Keys
-- ================================================================================
--
-- # Child Parent Column(s)
-- - ----- ------ ---------
-- 1
TTeamPlayers TTeams intTeamID
-- 2
TTeamPlayers TPlayers intPlayerID
-- 3
Z_TTeamPlayers TTeams intTeamAuditID
-- 4
Z_TTeamPlayers TPlayers intPlayerAuditID
-- 1
ALTER TABLE TTeamPlayers ADD CONSTRAINT TTeamPlayers_TTeams_FK
FOREIGN KEY ( intTeamID ) REFERENCES TTeams ( intTeamID )
-- 2
ALTER TABLE TTeamPlayers ADD CONSTRAINT TTeamPlayers_TPlayers_FK
FOREIGN KEY ( intPlayerID ) REFERENCES TPlayers ( intPlayerID )
-- 3
ALTER TABLE Z_TTeamPlayers ADD CONSTRAINT Z_TTeamPlayers_TTeams_FK
FOREIGN KEY ( intTeamAuditID ) REFERENCES Z_TTeams ( intTeamAuditID )
-- 4
ALTER TABLE Z_TTeamPlayers ADD CONSTRAINT Z_TTeamPlayers_TPlayers_FK
FOREIGN KEY ( intPlayerAuditID ) REFERENCES Z_TPlayers ( intPlayerAuditID )