Bonjour à tous, j'ai besoin de créer une BDD afin d'y travailler plus tard à l'aide de Delphi.

J'ai donc fait mon MCD, mais je ne suis vraiment pas sur de son éficacité. =/

Voici la création de mes tables :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
Create table Site (Site_ID integer,
		Site_Nom CHAR(25),
		Site_Service CHAR(15),
		CONSTRAINT Pk_Site primary key(Site_Nom));
 
Create table SERVICE (Service_ID integer,
		Service_Nom CHAR(15),
		CONSTRAINT Pk_Service primary key(Service_Nom));
 
Create table Personnel (Pers_ID integer,
		Pers_Nom CHAR(25),
		Pers_Prenom CHAR(25),
		Pers_CA integer,
		Pers_EM integer,
		Pers_Site,
		Pers_Service,
		CONSTRAINT Pk_Personnel primary key(Pers_Nom),
		CONSTRAINT Fk_PersSite foreign key(Pers_Site) references SITE(Site_Nom), 
		CONSTRAINT Fk_PersService forgein key(Pers_Service) references SERVICE(Service_Nom));
 
Create table Absence (Abs_ID integer,
		Abs_Date datetime,
		CONSTRAINT Pk_Absence primary key(Abs_ID));
 
Create table TYPE (Type_ID integer,
		Type_Nom CHAR(34),
		CONSTRAINT Pk_Type primary key(Type_Nom));
 
Create table Liste (List_ID integer,
		List_Site CHAR(25),
		List_Service CHAR(15),
		List_PersNom CHAR(25),
		List_PersPrenom CHAR(25),
		List_Abs Datetime,
		List_Type CHAR(34),
		CONSTRAINT Pk_Liste primary key(List_ID),
		CONSTRAINT Fk_ListSite foreign key(List_Site) references SITE(Site_Nom),
		CONSTRAINT Fk_ListService foreign key(List_Service) references SERVICE(Service_Nom),
		CONSTRAINT Fk_ListPersNom foreign key(List_PersNom) references PERSONNEL(Pers_Nom),
		CONSTRAINT Fk_ListPersPrenom foreign key(List_PersPrenom) references PERSONNEL(Pers_Prenom),
		CONSTRAINT Fk_ListAbs foreign key(List_Abs) references ABSENCE(Abs_Date),
		CONSTRAINT Fk_ListType foreign key(List_Type) references TYPE(Type_Nom));
Sachant que :

Un salarié peut être absent à une date.
Une absence appartient à un type.
Un salarié est rataché à un site.
Un site contient un ou plusieurs services.

Mon problème est là!
J'ai créé une table liste afin de pouvoir y stocké une ou deux information de chaque table, les faire ressortirs et enfin les imprimmer (Sous Delphi).
Mais est-il correct d'utiliser les foreign keys comme celà?
Est-ce que sa marchera?
J'aimerais avoir votre avis sur mon code SQL car je suis sur qu'il n'est pas bon, qu'il manque quelquechose ou que cette table Liste est une c******e.

Merci pour vos futures réponses!