-
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
-
-
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. ++
-
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)
-
non, pas a ma connaissance. Sans innodb tu dois bien etudier ta base et gerer les suppressions "manuellement"
-
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 :D passer sur une base postgresql ;) Free la propose :D
-
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
-
Eu des liens non, c'est a toi de les faire quand tu supprimer ou insere des entrées...
-
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
-
Merci, bon bah je vais retenter PostreSQL alors :(
Merci à tous