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

Développement SQL Server Discussion :

Arbre généalogique (avec consanguinité)


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Par défaut Arbre généalogique (avec consanguinité)
    glop, glop,

    je suis tombé sur cet article récemment : https://www.sitepoint.com/hierarchical-data-database/ cependant, dans mon cas, ça ne fonctionne pas.
    En effet, l'arbre généalogique peut avoir des ancêtres communs.

    Et pour un individu, je dois pouvoir lister toute son ascendance mais aussi toute la descendance.

    Donc dans les solutions à proscrire :
    - stocker dans ma table Animals, pour chaque entrée, l'ID du père et de la mère. On va éviter de générer des tonnes de requêtes n'est ce pas...
    - les solutions sur le site indiqué plus haut.

    L'idée d'avoir une table de naissance stockant une date et l'ID du père et de la mère et on référence l'ID de l'élément dans cette table dans la table Animals. Ca semble fonctionner pour l'ascendance.

    Est ce que quelqu'un voit une idée différente ou des problèmes à venir sur ce mode ?

    Merci,

    Vincent

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 009
    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 : 22 009
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par vduvernet Voir le message
    glop, glop,

    je suis tombé sur cet article récemment : https://www.sitepoint.com/hierarchical-data-database/ cependant, dans mon cas, ça ne fonctionne pas.
    En effet, l'arbre généalogique peut avoir des ancêtres communs.

    Et pour un individu, je dois pouvoir lister toute son ascendance mais aussi toute la descendance.

    Donc dans les solutions à proscrire :
    - stocker dans ma table Animals, pour chaque entrée, l'ID du père et de la mère. On va éviter de générer des tonnes de requêtes n'est ce pas...
    - les solutions sur le site indiqué plus haut.

    L'idée d'avoir une table de naissance stockant une date et l'ID du père et de la mère et on référence l'ID de l'élément dans cette table dans la table Animals. Ca semble fonctionner pour l'ascendance.

    Est ce que quelqu'un voit une idée différente ou des problèmes à venir sur ce mode ?

    Merci,

    Vincent

    Pour info il y a longtemps que j'ai ecrit des articlers en français sur la modélisation des arborescence sur ce site même....
    A lire : http://sqlpro.developpez.com/cours/arborescence/
    http://sqlpro.developpez.com/cours/s...te-recursives/
    https://blog.developpez.com/sqlpro/p...edure_de_derec
    https://blog.developpez.com/sqlpro/p...edure_de_depla
    https://blog.developpez.com/sqlpro/p...vallaire_proce
    https://blog.developpez.com/sqlpro/p...-intervallaire
    https://blog.developpez.com/sqlpro/p...-intervallaire
    ...

    Dans votre cas il ne s'agit pas d'un arbre, mais d'un graphe.
    Il faut donc une table des personnes avec leur date de naissance, et une autre table des liens filiaux dans laquelle on trouvera l’ancêtre et le descendant.

    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/ * * * * *

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Par défaut
    je vais jeter un oeil à tout ça merci

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 122
    Par défaut
    Glop, glop,

    je reviens sur le sujet.
    Il semblerait que Krosoft ai intégré les notions que je cherche sur la version 2017 qui vient de sortir :
    https://docs.microsoft.com/en-us/sql...graph-overview

    Du coup, parmi les liens que tu as donnés, pour lesquels on peut dire qu'ils appartiennent "au passé" car remplacés par cette nouvelle mouture de SQL ?

    Vincent

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 009
    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 : 22 009
    Billets dans le blog
    6
    Par défaut
    Encore une fois faites la différences entre graphes et arborescences. Ce n'est pas du tout la même chose. Dans SQL Server vous avez deux outils bien différents : HierarchyId pour les arbres en mode "path" et "graph database" pour les graphes. En sus du mode intervallaire pour les graphes.

    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/ * * * * *

  6. #6
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Oubliez pour l'instant la fonction de graphes dans sql server 2017, attendez la prochaine version. Il manque les fonctions les plus élémentaires de traversée de graphes dont vous avez besoin, à moins que vous sachiez chaque fois combien de niveaux vous voulez afficher.
    Si vous voulez vraiment utiliser une base de données spécifique pour cela et ne pas modéliser en relationnel, regardez du côté des moteurs orientés graphe, dont Neo4J, OrientDB ou ArangoDB. Si vous connaissez déjà sql server, il n'y a pas de raison de passer à un moteur orienté graphe. Suivez les conseils de sqlpro.
    La fonctionnalité graphe de sql server 2017 s'inspire du langage Cypher de Neo4J.

Discussions similaires

  1. [HF19] Dev Arbre Généalogique avec Windev
    Par MIROUX dans le forum HyperFileSQL
    Réponses: 7
    Dernier message: 24/07/2014, 23h25
  2. Afficher un arbre binaire avec sa structure
    Par PhoneKilleR dans le forum C
    Réponses: 7
    Dernier message: 24/04/2008, 00h24
  3. Réponses: 10
    Dernier message: 07/01/2007, 00h42
  4. [débutant] java2D pour arbre généalogique
    Par pingoui dans le forum 2D
    Réponses: 4
    Dernier message: 16/11/2004, 14h30
  5. Arbre binaire avec la STL ?
    Par SteelBox dans le forum SL & STL
    Réponses: 9
    Dernier message: 10/11/2004, 14h22

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