Précédent   Forum du club des développeurs et IT Pro > Bases de données > Autres SGBD > SQLite
SQLite Forum d'entraide SQLite
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/12/2012, 19h08   #1
sybe30
Membre à l'essai
 
Homme Sylvain BENOIT
Ingénieur R&D
Inscription : décembre 2009
Messages : 83
Détails du profil
Informations personnelles :
Nom : Homme Sylvain BENOIT
Âge : 38
Localisation : France

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

Informations forums :
Inscription : décembre 2009
Messages : 83
Points : 22
Points : 22
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
sybe30 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 22h40   #2
acaumes
Membre habitué
 
Homme Alain Caumes
Chef de projet MOA
Inscription : juillet 2011
Messages : 49
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 : 49
Points : 120
Points : 120
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
acaumes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 16h30   #3
sybe30
Membre à l'essai
 
Homme Sylvain BENOIT
Ingénieur R&D
Inscription : décembre 2009
Messages : 83
Détails du profil
Informations personnelles :
Nom : Homme Sylvain BENOIT
Âge : 38
Localisation : France

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

Informations forums :
Inscription : décembre 2009
Messages : 83
Points : 22
Points : 22
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.
sybe30 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 17h40   #4
acaumes
Membre habitué
 
Homme Alain Caumes
Chef de projet MOA
Inscription : juillet 2011
Messages : 49
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 : 49
Points : 120
Points : 120
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
acaumes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 09h08   #5
sybe30
Membre à l'essai
 
Homme Sylvain BENOIT
Ingénieur R&D
Inscription : décembre 2009
Messages : 83
Détails du profil
Informations personnelles :
Nom : Homme Sylvain BENOIT
Âge : 38
Localisation : France

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

Informations forums :
Inscription : décembre 2009
Messages : 83
Points : 22
Points : 22
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
sybe30 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 14h33   #6
seabs
Membre chevronné
 
Inscription : janvier 2009
Messages : 397
Détails du profil
Informations personnelles :
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2009
Messages : 397
Points : 640
Points : 640
Bonjour,

Citation:
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+
seabs est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h43.


 
 
 
 
Partenaires

Hébergement Web