Probleme de reference SQL

Résolu/Fermé
qc_can - 18 févr. 2009 à 22:56
 qc_can - 19 févr. 2009 à 07:04
Bonjour,

Je sais qu'on ne peux pas avoir plusieurs référence vers des clés primaires diverse pour une seul colonne, mais je ne voit pas comment réglé mon problème, puisque j'ai besoin de ses liens. Si quelqu'un pouvait m'aider a corriger le problème et par la même occasion corriger d'autre problèmes s'il en voie, j'en serais très heureux.

Merci.


create table Inventaire
(
Materiel_Inventaire varchar(30) NOT NULL PRIMARY KEY ,
Marque_Inventaire varchar(30) ,
Model_Inventaire varchar(30) ,
Quantite smallint NOT NULL
DEFAULT ('1') CHECK (Quantite >= 0) ,
Prix_Vente smallmoney NOT NULL
CHECK (Prix_Vente >= 0) ,
Employer varchar(30) NOT NULL
)

create table Tarif
(
Id_Tarif int IDENTITY(1,1) PRIMARY KEY NOT NULL ,
Nom_Tarif varchar(30) NOT NULL ,
Prix_Tarif smallmoney NOT NULL
CHECK (Prix_Tarif >= 0) ,
Description_Tarif varchar(200)
)

create table Materiel_Facture
(
Type_Materiel varchar(30) NOT NULL PRIMARY KEY ,
Marque_Materiel varchar(30) ,
Model_Materiel varchar(30) ,
No_Serie_Materiel varchar(30) ,
Date_Vente datetime NOT NULL
DEFAULT (getdate()) ,
Date_Fin_Garantie datetime
constraint CK_Date_Fin_Garantie CHECK (Date_Fin_Garantie > Date_Vente)
)

create table Travail_Effectue
(
Travail_Effectue varchar(200) NOT NULL PRIMARY KEY
)

create table Facturation
(
Id_Facture int IDENTITY(1,1) PRIMARY KEY NOT NULL ,
Nom_Client varchar(30) NOT NULL ,
Prenom_Client varchar(30) NOT NULL ,
Date_Facturation datetime NOT NULL
DEFAULT (getdate()) ,
Adresse_Facturation varchar(45) NOT NULL ,
Ville varchar(30) NOT NULL
DEFAULT ('Québec') ,
Code_Postal_Client CHAR(7)NOT NULL
CONSTRAINT CK_Code_Postal_Client CHECK (Code_Postal_Client Like '[A-Za-z][0-9][A-Za-z][ ][0-9][A-Za-z][0-9]') ,
No_Tel_Client char(14) NOT NULL
CONSTRAINT No_Tel_Client CHECK (No_Tel_Client Like '[(][0-9][0-9][0-9][)][ ][0-9][0-9][0-9][-][0-9][0-9][0-9][0-9]'),
Matériel_Facture varchar(90) REFERENCES Materiel_Facture(Type_Materiel) ,
Tarif_Facture int REFERENCES Tarif(ID_Tarif) NOT NULL ,
Interet smallmoney ,
Sous_Total smallmoney NOT NULL
CHECK (Sous_Total > 0),
TPS smallmoney NOT NULL
CHECK (TPS > 0) ,
No_TPS int NOT NULL
DEFAULT ('142408764') ,
TVQ smallmoney NOT NULL
CHECK (TVQ > 0) ,
No_TVQ int NOT NULL
DEFAULT ('1021261960') ,
Total smallmoney NOT NULL
constraint CK_Total CHECK (Total > Sous_Total) ,
Nombre_Heure tinyint NOT NULL
CHECK (Nombre_Heure > 0),
Travail_Effectue varchar(200) REFERENCES Travail_Effectue(Travail_Effectue) NOT NULL ,
Date_Limite datetime NOT NULL
constraint CK_Date_Limite CHECK (Date_Limite > Date_Facturation) ,
Technicien varchar(30) NOT NULL
)

create table Paye
(
Id_Paye int IDENTITY(1,1) PRIMARY KEY NOT NULL ,
Nom_Employer varchar(30) NOT NULL ,
Prenom_Employer varchar(30) NOT NULL ,
Date_Paye datetime NOT NULL
DEFAULT (getdate()) ,
Heure_Travail tinyint REFERENCES Facturation(Id_Facture) NOT NULL
CHECK (Heure_Travail > 0) ,
Payer char(3) NOT NULL
CONSTRAINT CK_Payer CHECK (Payer IN ('Oui', 'Non')) ,
Supplement smallmoney
CHECK (Supplement >= 0) ,
Explication_Supplement varchar(200) ,
Total_Paye smallmoney NOT NULL
CHECK (Total_Paye > 0)
)

create table Employer
(
Id_Employer int IDENTITY(1,1) PRIMARY KEY NOT NULL ,
Prenom_Nom_Employer varchar(50)
REFERENCES Inventaire(Materiel_Inventaire) NOT NULL
REFERENCES Facturation(Id_Facture)
REFERENCES Paye(Id_Paye) ,
Date_Emboche datetime NOT NULL
DEFAULT (getdate()) ,
Adresse_Employer varchar(45) NOT NULL ,
Ville varchar(30) NOT NULL
DEFAULT ('Québec') ,
Code_Postal_Employer CHAR(7) NOT NULL
CONSTRAINT CK_Code_Postal_Employer CHECK (Code_Postal_Employer Like '[A-Za-z][0-9][A-Za-z][ ][0-9][A-Za-z][0-9]') ,
Nom_Usager varchar(20) NOT NULL ,
Mot_de_passe varchar(20) NOT NULL ,
Salaire smallmoney NOT NULL
CHECK (Salaire > 0) ,
No_Telephone char(14) NOT NULL
CONSTRAINT CK_No_Telephone CHECK (No_Telephone Like '[(][0-9][0-9][0-9][)][ ][0-9][0-9][0-9][-][0-9][0-9][0-9][0-9]'),
Second_No_Telephone char(14)
CONSTRAINT CK_Second_No_Telephone CHECK (Second_No_Telephone Like '[(][0-9][0-9][0-9][)][ ][0-9][0-9][0-9][-][0-9][0-9][0-9][0-9]')
)

1 réponse

Problème réglé.

Mes références n'étaient pas au bon endroit.
0