[Résolu] Mettre deux attributs en clé primaire

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
aiden.park
Fraîchement OOthentifié
Messages : 3
Inscription : 27 nov. 2017 22:31

[Résolu] Mettre deux attributs en clé primaire

Message par aiden.park »

Bonjour, je voudrais savoir comment relier un ensemble de 2 attributs en clé étrangère au même ensemble d'attributs, c'est-à-dire à leurs clés primaires (qui sont reliés) comme ceci :
2017-11-27 23_27_56-Relationnel.pdf - Adobe Acrobat Pro DC.jpg
Pour au final les relier dans ce schéma-ci :
2017-11-27 23_27_41-ListeAttributTable2.odb _ ListeAttributTable2 - LibreOffice Base _ ébauche de re.jpg
Je sais comment mettre deux attributs en clé primaire, mais ici c'est différent, ils doivent être liés en quelques sorte.
(Terroir, Couleur)#n-----1(Terroir, Couleur)

Merci.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par aiden.park le 28 nov. 2017 20:31, modifié 1 fois.
LibreOffice 5 Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25173
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: Mettre deux attributs en clé primaire (LibreOffice Base)

Message par Dude »

Salut,

Image

Détaille donc par des phrases ton modèle relationnel.
Exemple : un accompagnement peut avoir <un|ou plusieurs> vin(s)

NB : "LibreOffice Base" est inutile comme précision dans un titre
Avatar de l’utilisateur
Astrée
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 01 août 2017 19:45
Localisation : Paris + Ile déserte

Re: Mettre deux attributs en clé primaire (LibreOffice Base)

Message par Astrée »

Bonjour,
Le plus simple est d'aller dans le menu Outils / Relations, puis dans le menu Insertion/Nouvelle Relation, et là, après avoir choisi les bonnes tables, tu mets dans la colonne de droite le ou les champs de la clé primaire, dans la colonne de gauche le ou les champs de la clé étrangère (il y a donc le même nombre de champs de chaque côté). Attention, tu ne peux pas mettre à droite la table qui doit être à gauche, et vive-versa.
Il se peut que ce soit faisable avec la souris, mais je n'ai jamais persévéré ainsi, ça m'énervait trop :D
Ensuite tu verras le graphisme qu'OpenOffice a construit, tu verras s'il correspond à ce que tu voulais. Logiquement, il devrait mettre deux liens en parallèle, sans mentionner 1/n (je crois). En pratique il s'agit plutôt d'un lien double (ou triple etc.) que de deux liens (ou trois), tu peux le vérifier en supprimant un des liens graphiques avec la souris : ça supprime l'autre. Donc OpenOffice a "compris" ce que tu voulais faire, et saura en tenir compte dans le reste des tes travaux.
Bonne journée,
Astrée
AOO 4.1.14 sur Mac OSX 10.11.6
LibO 3.5.6.2 sur Windows XP
(obligation de versions)
aiden.park
Fraîchement OOthentifié
Messages : 3
Inscription : 27 nov. 2017 22:31

Re: Mettre deux attributs en clé primaire (LibreOffice Base)

Message par aiden.park »

Oui, j'avais effectué cette méthode sauf que je les liaient avec la souris mais quand j'éteignait et rallumait la fenêtre avec les relations, les liaisons disparaissaient. Cependant avec votre méthode, je sauvegarde et je redémarre et ils ne disparaissent pas donc ça a l'air de fonctionner.
Mais est-ce normal que quand je copie et colle la table Vins, il me l'affiche comme ceci ?
2017-11-28 21_33_29-Recettes.ods - LibreOffice Calc.jpg
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 5 Windows 10
Avatar de l’utilisateur
Astrée
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 01 août 2017 19:45
Localisation : Paris + Ile déserte

Re: Mettre deux attributs en clé primaire

Message par Astrée »

Bonsoir,
Je ne comprends pas où vous faites le copier/coller : à l'intérieur de la fenêtre Relations ? Ou bien dans le fenêtre qui correspond à l'onglet Tables (donc où se visualise la liste des tables) ?
(et pourquoi copier une table ? Pour en avoir deux versions ? ça sent la redondance à plein nez, mais enfin, il y a peut-être une bonne raison :P

Astrée

PS : pour la fenêtre Relations, il faut toujours l'enregistrer après chaque opération de lien entre tables (que ce soit des opérations faites avec la souris ou par le menu). Je déconseille de ne l'enregistrer qu'en fin de travail, ne serait-ce que par prudence. Les relations qu'on y établit font partie intégrante de la structure de la base de données, donc il faut les y enregistrer, au même titre qu'on enregistre la structure d'une table avec ses champs, types de champs, clé primaire, valeurs part défaut, formats, caractères "saisie requise" ou non (et j'en oublie).
AOO 4.1.14 sur Mac OSX 10.11.6
LibO 3.5.6.2 sur Windows XP
(obligation de versions)
aiden.park
Fraîchement OOthentifié
Messages : 3
Inscription : 27 nov. 2017 22:31

Re: Mettre deux attributs en clé primaire

Message par aiden.park »

J'ai copier/Coller la table dans LibreOffice Calc, la suite de mon travail consistait à importer la table depuis un SGBD. Je suis en train d'y rentré les données pour le moment, il n'y a pas de soucis jusqu'ici.
Sinon à propos de votre remarque, sachez que je sauvegardais tout le temps la fenêtre des relations, pourtant lorsque je reliais (Terroir, Couleur)# à (Terroir, Couleur) avec la souris, les liaisons se faisaient mais elle disparaissait après réouverture de la fenêtre. J'ai réussi à contrer ce problème avec votre technique.
LibreOffice 5 Windows 10
Avatar de l’utilisateur
Astrée
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 01 août 2017 19:45
Localisation : Paris + Ile déserte

Re: Mettre deux attributs en clé primaire

Message par Astrée »

- Pour le copier/coller Base -> Calc, je suis incompétente, et "sur ce dont on ne peut parler, il faut garder le silence" (L. Wittgenstein, Tractacus logico-philosophicus, dernière phrase du livre. ça en jète hein :lol: )
- Sur le fenêtre Relations, je me souviens qu'en cas de clé multiple, le sens dans lequel on tire la souris est décisif (des champs participant à la clé primaire vers les champs participants à la clé étrangère, ou bien le contraire : OpenOffice ne comprend qu'un seul sens en fait, de la primaire vers l'étrangère je crois). Et je suppose qu'il n'enregistre que ce qu'il comprend, ce n'est pas un traitement de texte (idem en SQL : on ne peut enregistrer qu'une requête qui a du sens, même si ce n'est pas celui qu'on souhaite).
Bonne soirée,
Astrée
AOO 4.1.14 sur Mac OSX 10.11.6
LibO 3.5.6.2 sur Windows XP
(obligation de versions)