Quels sont les meilleurs moyens (plus propres, moins coûteux en ressources) de transmettre des relations un-à-plusieurs d'un serveur db à un client? Imaginez que j'ai une table auteur et une table livre. Je veux récupérer tous les auteurs dont le nom commence par "a" et tous les livres qu'ils ont écrits. Ensuite, côté client, générer un tableau d'objets "Auteur" dont le champ "Livres" est un tableau d'objets "Livres".Quelle est la meilleure façon de gérer les ensembles d'enregistrements (imbriqués)?
Deux pauvres solutions homme qui me viennent à l'esprit sont:
- Extrayez tous les auteurs, le cycle à travers eux sur le client et exécuter une requête supplémentaire pour obtenir tous les livres
- « SELECT a *. FROM auteur a, livre b WHERE a.name comme 'A%' et b.author_id = a.id "
La première solution est vraiment intensive côté base de données (si j'ai 1000 auteurs, je dois exécuter 1001 requêtes).
La seconde nécessite un travail intensif côté client, car le programme analyserait le résultat car il a les données communes à l'auteur répétées sur chaque ligne.
Une autre solution consisterait à renvoyer plusieurs jeux d'enregistrements à partir d'une procédure stockée. Je n'ai jamais manipulé plusieurs ensembles d'enregistrements et je ne suis pas sûr que toutes les classes de langues/adaptateurs les supportent.
Bien sûr, la situation peut s'aggraver si un auteur peut avoir des livres et essais et chaque livre peut avoir des pages d'échantillons et ainsi de suite.
Une idée? Merci
EDIT: J'utilise .net, donc les données de l'ado sont une option. Sont-ils soutenus mon oracle et mysql?
je suis à la recherche d'une solution portable, que je développe en .net, mais connecter à MS-SQL, Oracle et les bases de données MySQL – pistacchio