1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
CREATE TABLE [CompteUtilisateur](
[idCompteUtilisateur] INT NOT NULL IDENTITY(1,1),
[Nom] VARCHAR(45) NOT NULL,
[Prenom] VARCHAR(45) NOT NULL,
[Datenaissance] DATETIME ,
[CodePostal] CHAR(5) NOT NULL,
[TelephoneFixe] CHAR(10) NULL,
[TelephoneMobile] CHAR(10) NULL,
[Mail] VARCHAR(45) NOT NULL,
[MotPasse] VARCHAR(45) NOT NULL,
[DateCreation] DATETIME NOT NULL
CONSTRAINT [PK_CompteUtilisateur] PRIMARY KEY CLUSTERED ([idCompteUtilisateur] ASC),
CONSTRAINT [uc_CompteUtilisateur] UNIQUE (Mail),
CHECK(Mail like '%@%.%')
)
GO
CREATE TABLE [Admin](
[idAdmin] INT NOT NULL IDENTITY(1,1),
[idCompteUtilisateur] INT NOT NULL
CONSTRAINT [PK_AdminSite] PRIMARY KEY CLUSTERED ([idAdminSite], [idCompteUtilisateur] ASC),
CONSTRAINT [FK_AdminSite_idCompteUtilisateur] FOREIGN KEY (idCompteUtilisateur) REFERENCES CompteUtilisateur(idCompteUtilisateur)
)
GO
CREATE TABLE [Gestionnaire](
[idGestionnaire] INT NOT NULL IDENTITY(1,1),
[idCompteUtilisateur] INT NOT NULL
CONSTRAINT [PK_Gestionnaire] PRIMARY KEY CLUSTERED ([idGestionnaire], [idCompteUtilisateur] ASC),
CONSTRAINT [FK_Gestionnaire_idCompteUtilisateur] FOREIGN KEY (idCompteUtilisateur) REFERENCES CompteUtilisateur(idCompteUtilisateur)
)
GO
CREATE TABLE [Employe](
[idEmploye] INT NOT NULL IDENTITY(1,1),
[idCompteUtilisateur_Employe] INT NOT NULL,
[idGestionnaire] INT NOT NULL,
[idCompteUtilisateur_Gestionnaire] INT NOT NULL
CONSTRAINT [PK_idEmploye] PRIMARY KEY CLUSTERED ([idEmploye], [idGestionnaire] ASC),
CONSTRAINT [FK_Employe_idCompteUtilisateur_Employe] FOREIGN KEY (idCompteUtilisateur_Employe) REFERENCES CompteUtilisateur(idCompteUtilisateur),
CONSTRAINT [FK_Gestinnaire_idGestionnaire] FOREIGN KEY ([idGestionnaire], [idCompteUtilisateur_Gestionnaire])REFERENCES Gestionnaire(idGestionnaire, idCompteUtilisateur)
)
GO |
Partager