creer 2 tables avec des foreign keys [SQL] - SQL/NoSQL - Programmation
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
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???
Marsh Posté le 13-06-2002 à 15:40:54
c est quoi une clef etrangere ?
et a quoi ca sert ?
merci
Marsh Posté le 13-06-2002 à 15:59:04
et comment fait on pour contourner les clef etrangeres en mySQL ?
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...
bon, je sais pas si je me suis bien exprimée et surtout si je répond a la question...
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
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????
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 ?
Marsh Posté le 13-06-2002 à 16:59:36
ben une clée etrangère permet de joindre deux table grace à un attribut commun
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?