Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Discussion: Liaison entre tables

  1. #1
    Nouveau Membre du Club
    Homme Profil pro Sylvain BENOIT
    Ingénieur R&D
    Inscrit en
    décembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Nom : Homme Sylvain BENOIT
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2009
    Messages : 91
    Points : 28
    Points
    28

    Par défaut Liaison entre tables

    Bonjour,

    J'ai jamais vraiment utilisé de SGBD et je compte pas devenir spécialiste. Mais j'ai un petit truc à faire et une BDD me semble adaptée.

    Bref j'ai "choisi" SQLite parce qu’il à l'air simple et que j'ai trouvé un super tuto (court, et efficace http://www.dreamincode.net/forums/to...ite-with-c%23/) pour interfacer une BDD SQLite en C#.

    J'ai installé ce qui me semble nécessaire dont un GUI (SQLite Administrator). Avec ce GUI j'ai créé une base et 3 tables. J'ai saisi 2 ou 3 lignes dans chaque tables pour manipuler.

    Maintenant j'aimerai créer des liens (qu'un champs de la table 2 vienne piocher dans la table 1). Et la je suis sec !!!

    Avant d’écrire ici j'ai regardé dans les tutos du site mais j'ai pas trouvé, auriez-vous un bon tuto ou la solution à mon problème ?

    Un grand merci par avance

  2. #2
    Membre actif
    Homme Profil pro Alain Caumes
    Chef de projet MOA
    Inscrit en
    juillet 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Nom : Homme Alain Caumes
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Transports

    Informations forums :
    Inscription : juillet 2011
    Messages : 86
    Points : 188
    Points
    188

    Par défaut

    Bonjour,

    Je suppose que ce que tu cherches à faire se trouve là http://sqlpro.developpez.com/cours/sqlaz/jointures/

    mais quelques remarques de vocabulaire :

    On parle plutôt de colonnes dans une base relationnelle
    Une colonne ne va pas piocher elle peut référencer une autre table de la base sur une de ses colonnes.

    Cordialement

  3. #3
    Nouveau Membre du Club
    Homme Profil pro Sylvain BENOIT
    Ingénieur R&D
    Inscrit en
    décembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Nom : Homme Sylvain BENOIT
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2009
    Messages : 91
    Points : 28
    Points
    28

    Par défaut

    Bonjour,

    Merci pour le lien. J'ai lu quelques docs sur les jointures suite à ta réponse.
    Mais j'ai toujours une question. OK avec SELECT ... JOIN ...... WHERE .... je vais établir un lien. Mais dans ma compréhension ce lien n'existe qu'au moment ou j’exécute la requête. Si j'ai bien compris ce lien est une opération du frontend (appli C# dans mon cas) et non une propriété intrinsèque de la base (.s3db de SQLite dans mon cas). Donc si 2 frontends sont développés et partagent les mêmes tables il se peut qu'une application établisse explicitement le lien et l'autre non.

    Pourrais-tu me le confirmer si j'ai bien compris ? Merci.

  4. #4
    Membre actif
    Homme Profil pro Alain Caumes
    Chef de projet MOA
    Inscrit en
    juillet 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Nom : Homme Alain Caumes
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Transports

    Informations forums :
    Inscription : juillet 2011
    Messages : 86
    Points : 188
    Points
    188

    Par défaut

    Bonjour,

    Oui, bien sûr, c'est l'application qui doit savoir si elle veut récupérer le code (pas de jointure) ou un attribut quelconque lié à la clé (jointure)

    Exemple pour récupérer le nom d'un pays, je fais une jointure sur une table des pays qui contiendra le code, le nom, la monnaie ...)

    Bien entendu, le code pays sera le lien entre les deux tables.

    Par contre, si tu veux garantir que dans ta première table, le code pays existe à coup sûr dans la table des pays, alors tu dois mettre en œuvre les triggers.
    http://www.sqlite.org/lang_createtrigger.html

    Cordialement

  5. #5
    Nouveau Membre du Club
    Homme Profil pro Sylvain BENOIT
    Ingénieur R&D
    Inscrit en
    décembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Nom : Homme Sylvain BENOIT
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2009
    Messages : 91
    Points : 28
    Points
    28

    Par défaut

    Merci,

    J'ai juste survolé ton lien mais ça me plait bien ce trigger. Dans une autre doc j'ai entendu parler de "procedure stockée" c'est la meme chose ?

    Je vais me pencher plus serieusement sur les triggers.

    Cordialement

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    janvier 2009
    Messages
    459
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2009
    Messages : 459
    Points : 763
    Points
    763

    Par défaut

    Bonjour,

    J'ai juste survolé ton lien mais ça me plait bien ce trigger. Dans une autre doc j'ai entendu parler de "procédure stockée" c'est la meme chose ?
    Pas exactement.

    Pour les procédures stockées, tu oublies car Sqlite ne sait pas les utiliser. Cette possibilité n'est pas implanté.

    Les triggers sont des requêtes spécifiques qui interviennent avant ou après une opération INSERT, UPDATE et DELETE.

    Ne pas oublier la documentation Sqlite.

    A+

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •