Bonjour à tous,

Je suis en train d'écrire une DAL pour un logiciel.
C'est la première fois que je fais cela et j'ai le problème suivant :

Je dispose de deux Tables dans ma base de données
  • Produits
  • Familles


Un produit dispose de plusieurs familles et une famille n'appartient qu'à un seul produit.

J'ai donc écrit dans ma DAL les fonctions suivantes :

Pour la tables produits:

  • List<Produit> GetProduits()
  • Produit GetProduitByIdProduit(UInt32 Id)


Pour la table Familles :
  • List<Famille> GetFamilles()
  • List<Famille> GetFamillesByIdProduit(UInt32 IdProduit)
  • Famille GetFamilleByIdFamille(UInt32 IdFamille)


Imaginons maintenant que je veuille récupérer toutes les familles de tous les produits ...
Comment dois je faire ?
  1. Je rajoute une fonction dans la BLL qui appelera GetPRoduits, puis qui appelera GetFamillesByIdProduit, autant de fois qu'il y a de produit
  2. Ou, est ce que je dois faire une nouvelle fonction dans la DAL qui opére une jointure entre les deux tables ?


Merci d'avance pour vos réponses ainsi que vos explications.