Hello,
Je suis un peu calé au niveau modélisation dans un projet. C'est visiblement très simple (je n'ai, sur cette partie du schéma, que 4 tables), mais je suis un peu rouillé et je ne parviens pas à trouver de solution satisfaisante.
Voici comment est structuré le schema actuel :
J'ai tout d'abord une table clients. Chaque client à X contacts, j'ai donc une table contacts qui contient une clé étrangère client_id. Enfin, j'ai des projets. chaque projet est lié à un client, par l'intermédiaire d'un et un seul contact. J'ai donc une table projet qui contient une clé étrangère contact_id. Bref, du projet, on trouve directement le contact, puis le nom du client en suivant la relation de contact vers clients.
Le problème est que je cherche à permettre de créer, pour chaque client, de 0 à N "groupes de projets". Chaque projet pourra être dans 0 ou 1 groupe de projet.
La solution que j'ai sur ma feuille actuellement est la suivante : Ajouter une table projet_groups, qui contient une clé étrangère client_id. Dans la table projet, j'aurais aussi une clé étrangère projet_group_id qui peux etre NULL (le projet n'appartient à aucun groupe).
Le problème de ce schéma est le risque d'incohérence : vu que les tables contacts et project_groups sont "en parralèle" sur la relation qui relie projet à client, on pourrait se retrouver avec une incohérence entre le client_id de contact et le client_id de project_groups. Je peux bien sur mettre une série de verrous au niveau applicatif, mais j'aurais voulu garder une DB aussi clean et peu redondante que possible.
Comment me conseilleriez vous de structurer ceci ?
J'espère avoir été un minimum clair, excusez mon ignirance et mon manque de vocabulaire dans le domaine de la modélisation, ce n'est absolument pas mon boulot principal.
Merci d'avance,
Nicolas
Partager