[SQL] creer 2 tables avec des foreign keys

creer 2 tables avec des foreign keys [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 12-06-2002 à 22:37:00    

Je voudrais savoir comment est ce que l'on cree deux tables T1 et T2, contenant chacune une clef etrangere de l'autre table?
 
en effet chaque CREATE TABLE necessite la presence de l'autre table...
 
faut il les creer independamment pour faire ensuite un ALTER?

Reply

Marsh Posté le 12-06-2002 à 22:37:00   

Reply

Marsh Posté le 13-06-2002 à 00:20:44    

Si tu veux creer deux tables avec des relations croisées.. ben t mal barré !!! :)
 
Pask'il vaut mieux eviter ca :)... vaut mieux passer par une table intermediaire.
 
Tu rencontrera des tas de pb. sur tes tables qd tu voudra faire des opérations...
Bref, seul conseil, revois la conception de ta base :)
 
Bon courage :D

Reply

Marsh Posté le 13-06-2002 à 15:23:01    

Ben là, soit tu en fais 3, soit tu en n'en fais qu'une...mais pourquoi tu as besoin de les croiser, si c'est pas indiscret???

Reply

Marsh Posté le 13-06-2002 à 15:40:54    

c est quoi une clef etrangere ?  
et a quoi ca sert ?
merci

Reply

Marsh Posté le 13-06-2002 à 15:59:04    

et comment fait on pour contourner les clef etrangeres en mySQL ?

Reply

Marsh Posté le 13-06-2002 à 16:18:29    

comment ca??? tu veux eviter d'ecrire "FOREIGN KEY...." c'est ca? Ben a ce moment la tu creer par exemple idT1 dans la table T1, idT2 dans la table T2, pis quand tu enregistre une nouvelle ligne, tu prend idT1 pour le mettre dans la table T2, donc idT2. Pis dans les SELECT tu vérifie que idT2=idT1...  :heink:  
bon, je sais pas si je me suis bien exprimée et surtout si je répond a la question... :sweat:

Reply

Marsh Posté le 13-06-2002 à 16:22:34    

je voudrais savoir quelle est l utilite des clef etrangeres ?
et sachant que mySQL ne gere pas les foreign keys, quel
methode peut on utiliser pour contourner le probleme

Reply

Marsh Posté le 13-06-2002 à 16:36:51    

ben oui, tout le probleme est là : mySQL ne les gèrent pas, pas encore ;)  
pour les contourner, tu peux utiliser le truc que j'ai mis juste en haut, c'est a dire utiliser dans chaques tables a joindre une "fausse clée etrangere"
Admettons que tu ait idT1 comme clée primaire, en auto_increment.
Tu veux la joindre a la table T2
donc tu creer dans T2 le champ idT1, qui aura la meme valeur que idT1 de la table T1,  
tu peux recuperer le dernier auto_increment inseré avec mysql_insert_id (lors de ta requete INSERT quoi...) de ta table T1, pis après tu le met dans ta table T2
tu me suis???? :)

Reply

Marsh Posté le 13-06-2002 à 16:53:25    

ok donc je repose la question : c koi une clef etrangere ?
et a koi ca sert ?

Reply

Marsh Posté le 13-06-2002 à 16:59:36    

ben une clée etrangère permet de joindre deux table grace à un attribut commun

Reply

Marsh Posté le 13-06-2002 à 16:59:36   

Reply

Marsh Posté le 13-06-2002 à 17:53:34    

OK merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed