Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2007, 20h05   #1
Membre à l'essai
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 21
Points : 21
Par défaut MySQL et clé étrangère

Bonsoir,

Je sais que ce sujet a déjà été évoqués plusieurs fois, mais je n'ai pas réussi à trouver de solution qui me convenait.

Alors voilà,

J'utilise un hébergement gratuit free, et j'aimerai creer une base de données qui permet les foreign keys. Apparament, pour MySQL, il faudrait creer ses tables en "Inno DB", ce que mon hébergement ne permet apparament pas.

Néanmoins, j'ai entendu dire qu'on pouvait s'en sortir avec des "index", pouvez-vous m'aider ?

J'ai essayé de comprendre ce qu'était un index dans des cours MySQL mais ce n'est pas très clair pour moi.

J'aimerai par exemple pouvoir creer une table ingrédients et une table gateaux. Chaque ingrédients auraient un prix, qui se répercuterait automatiquement sur le prix du gateau final.

Merci d'avance
miboo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 20h28   #2
Membre à l'essai
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 21
Points : 21
Personne ?
miboo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 20h43   #3
Invité régulier
 
Inscription : novembre 2005
Messages : 39
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 39
Points : 9
Points : 9
Salut
OUi pour l integrité référentielle tu dois créer des tables innodb en mysql
personnellement j utilise toujours ca et c est vraiment génial.
Je te montre un exemple :p

create table T_membre (
id_membre int(20) not null AUTO_INCREMENT,
pseudo varchar(50) not null,
constraint ID_T_membre primary key(id_membre))type=innodb;


create table T_admin (
id_membre int(20) not null,
constraint ID_T_admin primary key(id_membre))type=innodb;

-- ici c est pour les contraites d integrités et de clés etrangeres
alter table T_admin add constraint Sid_T_admin
foreign key (id_membre)
references T_membre (id_membre) on delete cascade;


tu vois tu peux mettre on delete cascade ou on delete set null


Quand tu supprimera un membre de la table T_membre ca supprimera les champs de ta tables admin.

Courage et si tu as besoin de quelque chose n hesite pas. ++
natsou_k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 21h24   #4
Membre à l'essai
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 21
Points : 21
Mais mon hébergeur (à savoir Free) n'accepte pas à ma connaissance (??) les tables de type InnoDB...

Y a t-il un autre moyen ? (via des "index" par exemple)
miboo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 21h25   #5
Invité régulier
 
Inscription : novembre 2005
Messages : 39
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 39
Points : 9
Points : 9
non, pas a ma connaissance. Sans innodb tu dois bien etudier ta base et gerer les suppressions "manuellement"
natsou_k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 22h58   #6
Membre expérimenté
 
Étudiant
Inscription : juillet 2004
Messages : 777
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2004
Messages : 777
Points : 527
Points : 527
Oui il te faut creer des liaison en php en gros... C'est super galere mais il n'y a pas d'autre solution... Enfin si passer sur une base postgresql Free la propose
cerede2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 23h06   #7
Membre à l'essai
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 21
Points : 21
J'ai essayé postresql, je suis perdu. C'est un peu plus compliqué que MySQL quand même.

Pourrais tu m'en dire plus sur ces liaisons en PHP, aurais tu un lien à me passer,

merci d'avance
miboo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 23h13   #8
Membre expérimenté
 
Étudiant
Inscription : juillet 2004
Messages : 777
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2004
Messages : 777
Points : 527
Points : 527
Eu des liens non, c'est a toi de les faire quand tu supprimer ou insere des entrées...
cerede2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 00h11   #9
Invité régulier
 
Inscription : novembre 2005
Messages : 39
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 39
Points : 9
Points : 9
Je pense que si tu veux faire du codage de qualité tu as deux solutions (oublie les liaisons pour les grosses bases)
1 - changer d hebergeur pour passer a innodb
2- apprendre postgresql qui cela dit n est pas plus compliqué que mysql (le standard reste sql, il n y a que les fonctions php qui changent).

Bon courage dans ton developpement.
Au plaisir.
Benoit. http://www.sosmessenger.com
natsou_k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 00h45   #10
Membre à l'essai
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 21
Points : 21
Merci, bon bah je vais retenter PostreSQL alors
Merci à tous
miboo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h28.


 
 
 
 
Partenaires

Hébergement Web