Il s'agit de mapping objet/relationnel.
J'ai un peu de mal à trouver une solution satisfaisante pour l'héritage de classes dans le cadre d'associations "is-a" entre plusieurs entités.
Par exemple, disons que j'ai 3 tables dans une base de données : Personne, Client et Fournisseur.
Une personne peut être à la fois cliente et fournisseur.
Quelles sont les bonnes manières de modéliser ça en poo ?
1)
Trois classes : Personne, Client et Fournisseur.
Client et Fournisseur héritant de Personne et disposant d'une association "Base" de type Personne.
Personne disposant d'une associations pour chaque classe dérivée, donc : Personne.ClientDérivé et Personne.FournisseurDérivé
2) complètement larguer l'idée de faire de l'héritage de classe, et ne garder que les associations ?
Par la suite, mon but est notemment d'être capable de :
- créer un nouveau client ou fournisseur à partir d'une personne
- trouver rapidement tous les clients/fournisseurs faisant référence à une personne
La solution ultime devrait également permettre, dans l'hypothèse où il y aurait, par exemple, une classe MauvaisClient dérivant de Client, de créer un nouveau MauvaisClient à partir d'une Personne.
Autrement dit de créer l'instance de Client si celle-ci n'existe pas, et si elle existe de l'utiliser pour créer le mauvaisclient.
Partager