Bonjour à tous,
J'ai rencontré un dilemme de modélisation sur une partie de mon projet que j'aimerais bien vous soumettre. Je m'excuse pour le titre évasif, je n'ai pas su mieux résumer... la problématique s'apparente à ça:
- Un livre peut avoir 1 ou n auteurs.
- Un auteur peut avoir écrit 1 ou n livres.
Nous nous intéressons maintenant aux annexes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 auteur (id_auteur, nom_auteur) livre (id_livre, nom_livre) auteur_livre (id_auteur, id_livre)
- Une annexe a 1 et 1 seul auteur.
- Un auteur peut avoir écrit 0 ou n annexes.
- Une annexe peut concerner 0 ou 1 livre.
Jusque là, ça me semble relativement simple, même si ça fait un moment que je n'ai pas fait de modélisation !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 annexe (id_annexe, id_auteur) annexe_livre (id_annexe, id_livre)
Et voici la règle supplémentaire qui me fait me questionner:
- Si l'annexe concerne un livre, son auteur doit figurer parmi les auteurs du livre.
Niveau base de données, je pensais m'en assurer avec un trigger lors de l'insert/update sur annexe_livre, pour vérifier que le couple auteur de l'annexe & livre concerné figure bien dans la table d'association auteur_livre.
Mais je ne vois pas comment faire figurer cela dans mon modèle, ni même si elle doit y figurer. J'avais presque envisagé de référencer directement l'association auteur_livre (annexe_auteur_livre (id_annexe, id_auteur, id_livre)), mais reste qu'il faut s'assurer que l'auteur du couple auteur_livre référencé est bien l'auteur de l'annexe. Et ça me semble pas très correct de référencer une association, sans certitude ceci dit...
Voilà, si vous avez des conseils sur la meilleure méthode à adopter, que ce soit en terme de représentation sur le modèle que sur l'implémentation niveau BDD, ce serait sympathique!
Dites-moi si j'ai omis les infos importantes, merci et bonne journée
Partager