Bonjour,
@Paprick,
Puisqu'on est dans la série « composition des identifiants ».
Prenons par exemple le cas de l’entité-type FOURNISSEUR, au début du chapitre 12 de Modélisation Conceptuelle de Données - Une démarche pragmatique :
Pour les besoins de la cause, je définis maintenant des identifiants alternatifs.
Ci-dessous, l’attribut Nom devient élément de l’identifiant alternatif {Nom, CodePostal}, symbolisé par l’index 1, et cet attribut devient aussi élément de l’identifiant alternatif {Nom, Ville}, symbolisé par l’index 2 (les noms des index sont séparés par le caractère « | ») :
A son tour, l’attribut CodePostal est lui aussi élément de l’identifiant alternatif {Nom, CodePostal}, symbolisé par l’index 1 :
L’attribut Ville est élément de l’identifiant alternatif {Nom, Ville}, symbolisé par l’index 2 :
Code SQL résultant (MySQL) :
CREATE TABLE FOURNISSEUR
(
IdFournisseur INT AUTO_INCREMENT,
Nom VARCHAR(50) NOT NULL,
Adresse VARCHAR(80) NOT NULL,
CodePostal CHAR(5) NOT NULL,
Ville VARCHAR(50) NOT NULL,
IBAN CHAR(27) NOT NULL,
CONSTRAINT FOURNISSEUR_PK PRIMARY KEY(IdFournisseur),
CONSTRAINT FOURNISSEUR_1_AK UNIQUE(Nom, CodePostal),
CONSTRAINT FOURNISSEUR_2_AK UNIQUE(Nom, Ville),
CONSTRAINT FOURNISSEUR_AK UNIQUE(IBAN)
) ;
Va tutto bene !
Mais voilà que pour le DBA (encore lui...) les attributs de la clé alternative FOURNISSEUR_1_AK sont à réordonner ainsi :
CONSTRAINT FOURNISSEUR_1_AK UNIQUE(CodePostal, Nom)
Peut-être me trompé-je, mais j’ai le sentiment que, pour le moment, je suis obligé de réordonner manuellement dans le code SQL (sauf à supprimer l’identifiant alternatif puis le recréer...).
Question :
Pour chaque index serait-il possible de choisir la position des attributs dans les identifiants alternatifs ? Par exemple, ci-dessous l’attribut Nom est en position 2 dans le cas de l’index 1 tandis qu’il est en position 1 dans le cas de l’index 2 :
Pour mémoire, avec AMC pour chaque entité-type on dispose d’une fenêtre « Identifiants » fournissant la liste des identifiants de cette entité-type, et pour chacun de ces identifiants on peut afficher une fenêtre « Attributs » permettant d’y ajouter, supprimer des attributs, avec la possibilité de les réordonner (à la manière dont on réordonne les rubriques dans la fenêtre « Entité » avec Looping).
Toujours avec AMC, en option on a la possibilité de voir à quels identifiants appartiennent les attributs :
Si Looping proposait quelque chose d’analogue plutôt que les noms des attributs en gras comme ci-dessous, j’avoue que cela ne serait pas pour me déplaire...
Patrick, qu’en penses-tu ? Peut-être suis-je à la bourre sur ce sujet ? 
Partager