IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes PostgreSQL Discussion :

Requêtes avec des champs de type array


Sujet :

Requêtes PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Chef d’entreprise
    Inscrit en
    Mars 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef d’entreprise

    Informations forums :
    Inscription : Mars 2002
    Messages : 212
    Par défaut Requêtes avec des champs de type array
    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

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    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.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par ZIED Voir le message
    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?
    C'est possible comme on vous l'a indiqué, mais peu performant. En effet il n'est pas possible d'optimiser les accès à un tableau alors qu'avec une table oui !
    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
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Requête avec des champs dynamiques
    Par icl1c dans le forum Langage SQL
    Réponses: 6
    Dernier message: 06/06/2012, 15h11
  2. Jointure entre 2 tables avec des champs de types différents
    Par qltmi dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/11/2008, 20h58
  3. Critères avec opérateurs dans une requête avec des champs calculés
    Par lmollard dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 11/05/2008, 18h53
  4. Réponses: 4
    Dernier message: 22/11/2007, 19h23
  5. requete sql avec between sur des champs de type Date
    Par ersoufiane dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/08/2006, 19h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo