|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : mars 2002 Messages : 204 ![]() |
Je suis en train de trvailler sur un outil de gestion de projet avec PHP et postgresql 9.
J'ai une table regroupant les taches qui s'appelles tasks. Pour simplier le problème, la table tasks contient deux champs (id, task). Pour gérer les antécédances, j'ai une table predecessors avec deux champs (task_id, predecessor,id) Je voudrais simplifier ceci en modifiants la table taks ainsi ((id, task, predecessors) où prédecessors est un tableau d'entier avec la liste des id de toutes les taches prédecessurs. Est-ce possible? Si oui comment faire une requête pour avoir un résultat avec les données suivantes task_id, task, predecessor_id, predecessor_details Merci |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
Il faut utiliser la fonction unnest() pour transformer le tableau en un ensemble de lignes. Le résultat de cette fonction peut être utilisé comme si c'était l'ancienne table.
|
|
|
00
|
|
|
#3 | |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 954 ![]() |
Citation:
Résultat, vous perdrez beaucoup en terme de performances.... En sus les opérations NEST et UNNEST ne sont pas bijectives ! (sauf à rajouter une contrainte de partition afin de respecter la forme normale de partitionnement...) A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com