Je n'avais pas vu votre entité-type Type_Site...
Je supprime donc CodeBr dans l'entité-type Site.
Bonne nuit !
Bonjour,
Dans la série ceinture, bretelles et épingle à nourrice, peut-être préféreriez-vous cette version, dans laquelle Reservation devient une entité-type faible (c’est-à-dire une propriété multivaluée de Mission), identifiée relativement à Mission :
ReservationId n’est pas un identifiant absolu, mais seulement relatif à MissionId.
Votre avis ?
Retour sur les frais de mission.
Dans le cadre d’une mission, disons m1, les employés e1, e2, e3, constituent l’équipe de m1.
Selon le post #17, les frais de mission sont rattachés à la paire (employé, mission), c’est-à-dire que dans le cadre de m1, chaque équipier, par exemple e1, peut être défrayé pour un montant pouvant différer de celui défrayant ses collègues, e2, e3.
Question : les équipiers de m1 ne sont-ils pas tous défrayés du même montant ?
Dans la mesure où il est chef de la mission m1,le réalisateur de celle-ci fait-il partie des employés (e1, e2, e3, ...) intervenant sur m1 ?
Selon le MCD, on ne sait pas qui planifie la mission. On peut s’en dispenser ?
Même question concernant le réalisateur s’il ne fait pas partie des intervenant sur m1 (directeur de la structure, le chef service, etc.).
re,
Ce n'est pas poser, mais, l'ordre de mission sera planifié suite à une demande de structure responsable de certain service comme sécurité informatique, développement, support système etc.... donc le chef de cette structure envoie son équipe à la destination (ou plus) désirée.
le realisateur du mission c'est un employé qui s'encharge d'executer la mission avec un equipe ou seul .
hhhhhhh.... ca se voit , une remarque interessante meme qu'il n'est pas mentionner dans les regles de gestion mais a proposer..merci.
le passage de looping vers PowerDesigner(pour degager le diagramme de class) me pose quelques problemes comme le passage d'une association a une entité (le cas de
EmployeMission) ainsi que contrainte d'association(heritage:Exclusive,partition et aucun).
Si vous voulez produire un MCD PowerDesigner, vous pouvez faire une rétro-conception à partir du code SQL pondu par Looping.
Dans AMC (Power Designer) :
Fichier > Reverse engineering > Base de données
Puis dans les options fournir le nom du SGBD et le nom du fichier contenant les CREATE TABLE (Exemple : C:\DVP\dalinbm(create_table).sql)
Une fois le MPD affiché, dans Outils demander la génération du MCD.
Si EmployeMission est devenu une association, en cliquant dessus, vous pouvez demander à AMC d’en faire une entité-type.
Bonjour,
D’accord. C’est un petit problème de graphisme que Paprick prendra certainement en compte. En attendant, ça n’est pas gênant.
Quel est précisément le problème ?
Quoi qu’il en soit, prenons le MCD Looping suivant :
Looping produit le code SQL suivant :
Code SQL : 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 CREATE TABLE Employe( EmployeId SMALLINT, Matricule VARCHAR(8) NOT NULL, EmployeNom VARCHAR(50) NOT NULL, EmployePrenom VARCHAR(50) NOT NULL, CONSTRAINT Employe_PK PRIMARY KEY(EmployeId), CONSTRAINT Employe_AK UNIQUE(Matricule) ); CREATE TABLE Chauffeur( EmployeId SMALLINT, CONSTRAINT Chauffeur_PK PRIMARY KEY(EmployeId), CONSTRAINT Chauffeur_Employe_FK FOREIGN KEY(EmployeId) REFERENCES Employe(EmployeId) ); CREATE TABLE Modele( ModeleId SMALLINT, ModeleNom VARCHAR(50) NOT NULL, CONSTRAINT Modele_PK PRIMARY KEY(ModeleId), CONSTRAINT Modele_AK UNIQUE(ModeleNom) ); CREATE TABLE ChauffeurOccasionel( EmployeId SMALLINT, CONSTRAINT ChauffeurOccasionel_PK PRIMARY KEY(EmployeId), CONSTRAINT ChauffeurOccasionel_Chauffeur_FK FOREIGN KEY(EmployeId) REFERENCES Chauffeur(EmployeId) ); CREATE TABLE ChauffeurSociete( EmployeId SMALLINT, CONSTRAINT ChauffeurSociete_PK PRIMARY KEY(EmployeId), CONSTRAINT ChauffeurSociete_Chauffeur_FK FOREIGN KEY(EmployeId) REFERENCES Chauffeur(EmployeId) ); CREATE TABLE Voiture( VoitureId INT, Immatriculation VARCHAR(16) NOT NULL, ModeleId SMALLINT NOT NULL, CONSTRAINT Voiture_PK PRIMARY KEY(VoitureId), CONSTRAINT Voiture_AK UNIQUE(Immatriculation), CONSTRAINT Voiture_Modele_FK FOREIGN KEY(ModeleId) REFERENCES Modele(ModeleId) ); CREATE TABLE VoiturePersonnelle( VoitureId INT, EmployeId SMALLINT NOT NULL, CONSTRAINT VoiturePersonnelle_PK PRIMARY KEY(VoitureId), CONSTRAINT VoiturePersonnelle_AK UNIQUE(EmployeId), CONSTRAINT VoiturePersonnelle_Voiture_FK FOREIGN KEY(VoitureId) REFERENCES Voiture(VoitureId), CONSTRAINT VoiturePersonnelle_ChauffeurOccasionel_FK FOREIGN KEY(EmployeId) REFERENCES ChauffeurOccasionel(EmployeId) ); CREATE TABLE VoitureSociete( VoitureId INT, CONSTRAINT VoitureSociete_PK PRIMARY KEY(VoitureId), CONSTRAINT VoitureSociete_Voiture_FK FOREIGN KEY(VoitureId) REFERENCES Voiture(VoitureId) ); CREATE TABLE Mission( MissionId SMALLINT, MissionDateDebut DATE NOT NULL, MissionDateFin DATE NOT NULL, EmployeId SMALLINT, VoitureId INT, CONSTRAINT Mission_PK PRIMARY KEY(MissionId), CONSTRAINT Mission_ChauffeurSociete_FK FOREIGN KEY(EmployeId) REFERENCES ChauffeurSociete(EmployeId), CONSTRAINT Mission_Voiture_FK FOREIGN KEY(VoitureId) REFERENCES Voiture(VoitureId) ); CREATE TABLE EmployeMission( MissionId SMALLINT, EmployeId SMALLINT, CONSTRAINT EmployeMission_PK PRIMARY KEY(MissionId, EmployeId), CONSTRAINT EmployeMission_Mission_FK FOREIGN KEY(MissionId) REFERENCES Mission(MissionId), CONSTRAINT EmployeMission_Employe_FK FOREIGN KEY(EmployeId) REFERENCES Employe(EmployeId) );
Je soumets ce code à SQL Server, lequel ronronne...
Pour y voir pus clair, merci de présenter le MCD qui a servi pour la génération de vos tables.
Je vous propose ensuite de soumettre à SQL Server le code SQL produit par Looping à partir de ce MCD.
A bientôt, Colombo
re Bonjour,
LE modele E/A :
qui genere le code sql suivant :
sqlMissionDB.sql
.
Et appuyez sur "UML" pour voir si la contrainte apparait à tort dans l'héritage...
Partager