Bonjour,

J'aimerais savoir comment faire des relations entre plusieurs tables, je m'explique :

J'ai une table 'magasins', ainsi qu'une table 'utilisateurs' à laquelle j'aimerais associer : des magasins ainsi que des regroupements de magasins (appelé zones), le problème étant que je ne sais absolument pas comment gérer cela le moins dégueulasse possible...
J'ai essayé de chercher avec les tables pivot et toutes les règles de Laravel et de base PHP mais je ne vois rien :(

Comment feriez-vous en prenant en compte que les recherches peuvent se faire utilisateurs->magasins et magasins->utilisateurs ?

Merci d'avance !

2 réponses


Salut,

Si j'ai bien compris :

Un utilisateur peut avoir de 0 à n magasins ==> utilisation d'une table pivot avec user_id et magasin_id

Un magasin appartient à une zone => zone_id directement dans la table magasin

Pour la première c'est bien ça, mais les utilisateurs et les magasins peuvent aussi être associées à une ou plusieurs zones...

Par exemple, dans le plus complexe des cas on pourrait avoir :

La Zone A contient [la Zone B (qui contient 3 magasins) et la Zone C (qui contient 1 magasin)], au total : 4 magasins.
John est associé à la Zone A mais aussi à une Zone X et à 3 autres magasins qui n'ont pas de zone.
Comment représenter ça en base de données simplement xD