par
Cyrano » 19 avr. 2007, 15:49
Lequel doit faire partie de l'autre ? menu appartient à article ou l'inverse.
Petit détail : lorsque tu crées une relation, tu ajoutes en clé étrangère dans la table fille une colonne avec le nom de la clé primaire de la table parente. Donc premier truc : on préfixe le nom des colonnes. Ainsi, la colonne id se nommera soit art_id soit men_id : si un article fait partie d'un menu, alors dans la table article, on trouvera la colonne art_id mais également men_id. Comme ça, tu peux faire des jointures facilement. (Voir dans la FAQ l'article sur les jointures basiques)
note importante, une clé étrangère devra également avoir le même type et les mêmes propriétés que la clé primaire qu'elle représente. Donc si la clé primaire est un INT UNSIGNED NOT NULL AUTO_INCRÉMENT, la clé étrangère dans l'autre table aura exactement les mêmes caractéristiques
sauf bien entendu l'auto-incrément.
Pour rechercher maintenant des lignes orphelines, ça va un peu dépendre de la version de MySQL que tu utilises. Si elle est supérieure à la 4.1, alors utilise une sous-requête avec un NOT IN.
N'hésite pas à mettre ces mots-clés pour trouver des informations dans
la doc de MySQL
Lequel doit faire partie de l'autre ? menu appartient à article ou l'inverse.
Petit détail : lorsque tu crées une relation, tu ajoutes en clé étrangère dans la table fille une colonne avec le nom de la clé primaire de la table parente. Donc premier truc : on préfixe le nom des colonnes. Ainsi, la colonne id se nommera soit art_id soit men_id : si un article fait partie d'un menu, alors dans la table article, on trouvera la colonne art_id mais également men_id. Comme ça, tu peux faire des jointures facilement. (Voir dans la FAQ l'article sur les jointures basiques)
note importante, une clé étrangère devra également avoir le même type et les mêmes propriétés que la clé primaire qu'elle représente. Donc si la clé primaire est un INT UNSIGNED NOT NULL AUTO_INCRÉMENT, la clé étrangère dans l'autre table aura exactement les mêmes caractéristiques [u]sauf[/u] bien entendu l'auto-incrément.
Pour rechercher maintenant des lignes orphelines, ça va un peu dépendre de la version de MySQL que tu utilises. Si elle est supérieure à la 4.1, alors utilise une sous-requête avec un NOT IN.
N'hésite pas à mettre ces mots-clés pour trouver des informations dans [b][url=http://dev.mysql.com/doc/refman/5.0/fr/]la doc de MySQL[/url][/b]