gestion base de données Mysql

gaston gaston
1 620 contributions
Membre depuis le 01/03/2001
Envoyé le 13/04/2017 à 19:34


Bonjour,

j'ai une base de données Mysql, avec laquelle je gère des fichiers d'aide pour une chorale.
je me sers notamment de 2 tables:
1 table morceaux avec notamment: les champs id_morceaux, id_concert, numéro (de passage), adresse fichier
1 table concerts, avec les champs id_concert, nom, date, couleur, actif
Ainsi je peux associer un morceau à un concert et faire apparaitre la liste des morceaux pour un concert donné.
Bien sûr, je gère tout cela à l'aide de formulaires.

Petit hic, je dois gérer 3 concerts qui vont se succéder, mais je n'avais pas prévu le cas qu'un morceau puisse être affecté à plusieurs concerts et donc en plus avec des ordres de passage différents selon le concert.

A votre avis, comment puis-je gérer cela ?

carpe diem
Claude40 Claude40
1 534 contributions
Membre depuis le 24/03/2010
Envoyé le 14/04/2017 à 16:52 Modifié par Claude40


Bonjour,
Si le même morceau doit être interprété dans plusieurs concerts, il faut placer dans la table des morceaux un enregistrement par concert qui précisera également l'ordre de passage particulier de ce morceau dans le concert en question.
Dans ce cas, bien évidemment, l'Id_morceau doit être défini avec doublons possibles.
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
gaston gaston
1 620 contributions
Membre depuis le 01/03/2001
Envoyé le 14/04/2017 à 23:41


Bonjour,

J'y avais bien songé mais cette solution ne me satisfait pas. Il me semblait que peut-être avec une table intermédiaire... ? Mais je n'arrive pas à préciser
carpe diem
Claude40 Claude40
1 534 contributions
Membre depuis le 24/03/2010
Envoyé le 15/04/2017 à 11:58


Bonjour,
C’est facile à dire après que les données du problème aient évolué, mais personnellement je prendrais une autre organisation des tables en considérant la table « Concerts » comme majeure.
Table « Concerts » : Id_Concert, nom, date, couleur, actif, id_morceau, N°_de_passage
Table « Morceaux » : id_morceau, titre, etc… mais pas de référence à un concert.
Cela change évidemment tous les formulaires ou les états résultants, mais cela répond au problème !

Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
gaston gaston
1 620 contributions
Membre depuis le 01/03/2001
Envoyé le 15/04/2017 à 13:56


Bonjour,
Suis-je bête ! Tu as tout à fait raison, même si ça oblige à refaire certains trucs ! Et ainsi, on est pas du tout limité par le nombre de concerts !
Je vais tester ça
Merci beaucoup !

carpe diem
Claude40 Claude40
1 534 contributions
Membre depuis le 24/03/2010
Envoyé le 15/04/2017 à 14:39


Bonjour,
Pour éviter les redondances, on peut aussi imaginer 3 tables, la table que j'appelais "Concerts" étant en réalité une table issue de la consolidation des deux autres.
Donc :
Une table "Concerts" limitée à sa plus simple expression : id; libellé et date
Une table "Morceaux" également limitée à sa plus simple expression, id, titre, etc
Une table "Consolidation", permettant de lister les morceaux interprétés dans chaque concert et dans l'ordre.
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
gaston gaston
1 620 contributions
Membre depuis le 01/03/2001
Envoyé le 18/04/2017 à 13:44


Bonjour,
J'en étais arrivé à la même idée...
carpe diem

Discussion trop ancienne

Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.

Nous vous suggérons de créer un nouveau message

« Retour sur la liste des messages de ce forum