Liaison multi table

Petit nouveau ! | 7 Messages

13 déc. 2018, 23:56

voila ma problematique:

J'ai plusieurs entreprises
Entreprise A
Entreprise B
Entreprise C

chaque entreprise dispose de son propre code d'identification unique

J'ai plusieurs utilisateurs
User 1
User 2
User 3

chaque user dispose de son propre code d'identification unique

Chaque entreprise dispose de plusieurs catégories
Cat 1
Cat 2
Cat 3

Mon problème:
1/ Je souhaite pouvoir ASSOCIER un utilisateur aussi bien à une entreprise (ou des entreprises) mais également à une ou plusieurs catégorie
2/ je souhaite pouvoir AFFICHER les fiches entreprises associé au user et les fiches user associé aux entreprise

Par exemples:
données:
User 1 est responsable de la cat 1 dans l'entreprise A
User 2 est responsable de la cat 2 et 3 dans l'entreprise A et responsable de la cat 1 dans l'entreprise B
User 3 est responsable de la cat 1 dans l'entreprise A et dans l'entreprise B, et il est aussi responsable de la cat 3 dans l'entreprise C

Affichage possible:
Tableau des entreprises et des catégories associé de l'User 1
Tables des users associé au catégorie, dans l'entreprise 1 ou 2..etc

Comment feriez vous ça? quel est pour vous la meilleur démarche/approche?

Mille milliard de merci

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 déc. 2018, 12:09

Je pense qu'il faut que tu commences par définir très proprement les associations, et tu auras ta réponse.

Qu'est-ce que l'utilisateur pour une entreprise ? Est-ce qu'il peux/doit être associé à une entreprise pour être responsable d'une catégorie, ou est-ce qu'il n'est associé à une entreprise QUE parce qu'il est responsable d'une catégorie ?

Dans le premier cas, il faut que tu fasses une première association entre l'utilisateur et l'entreprise, puis une association entre cette association et la catégorie.
Dans le second cas, tu peux faire une unique association entre les 3 tables.

Le plus simple pour savoir dans quel cas tu te trouves, c'est de trouver un nom aux associations.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer