Bonsoir,
je suis nouveau dans le monde PostgreSQL, ayant plutôt l'habitude travailler sur MSSQL. Mais je sens que Postrgre pourrait bien devenir mon SGBD préféré. Je trouve d'ailleurs l'interface pgAdmin très agréable.
Avant de m'engager plus avant dans la construction d'une base de production sous Postgre, j'ai effectué quelques tests qui me paraissent concluants. Toutefois, je bloque sur un point fondamental par rapport à mes habitudes de travail et je n'ai pas encore trouvé d'infos pertinentes à ce sujet. Voici ma problématique : pour diverses raisons qui sont plus ou moins immuables, je souhaite pouvoir écrire des procédures stockées retournant des données hiérarchisées. Par exemple, un enregistrement issu d'une table T1 suivi de n1 enregistrements issus d'une table T2, puis l'enregistrement suivant de la table T1 suivi de n2 enregistrement de la table T2, etc. Tout cela, bien évidemment, sans limitation du nombre de niveaux (comprendre un nombre illimité de tables).
A ce jour, sous MSSQL, je renvoie tout simplement plusieurs jeux d'enregistrements (parfois un jeu est composé d'une ligne unique). Utilisant un Reader spécifique .NET, je parcours l'ensemble de ces jeux de résultats et alloue des objets dynamiquement en fonction des types et noms de colonnes rendus par le Reader.
D'après ce que j'ai pu comprendre, les fonctions PLPGSQL peuvent renvoyer des "setof records", mais je l'ai plutôt analysé comme un alias de table temporaire dont la lecture ne peut d'ailleurs se faire qu'en fournissant les noms et types des colonnes rendues.
Y a t-il un moyen de rendre ce résultat de façon dynamique ? est-il possible de renvoyer un ensemble de données hiérarchisées qu'un langage objet (PHP ?) pourrait recueillir en allouant dynamiquement des objets correspondants aux enregistrements retournés ?
Merci de m'aider à faire le pas vers Postgre...
Partager