|
|
|
|
Salut a tous,
je voulais savoir comment vous vous y prendriez pour normaliser une table comme celle ci dessous
TABLE
--------
Ch1 Ch2 ch3 ----- ----- ----- aa zzz mmmm aa zzz ppppp aa kkk mmmm aa kkk ppppp aa jjj mmmm aa jjj ppppp bb zzz mmmm bb zzz ppppp bb kkk mmmm bb kkk ppppp bb jjj mmmm cc zzz mmmm cc zzz ppppp cc kkk mmmm cc kkk ppppp cc jjj mmmm
Teebo : ...quelle norme tu veux ... Oula, jen sais rien ???? tu parles de SQL89, SQL92, SQL99 ? ca a une incidence a ce niveau? Moi je parlais de lui appliquer simplement les regles de Codd mohammed : effectivement, c'est justement ca qu'il faut lui appliquer en partie mais je ne sais pas comment m'y prendre pour normaliser tout en gardant a l'esprit que je dois optimiser l'exploitation de la BD (la recherche) Sinon pour l'instant jai créé une table 3 PKCh3.1 Ch3.2 ---------- -------- 1 a 2 b 3 c jai créé une table 2 PKCh2.1 Ch2.2 ---------- -------- 1 zzz 2 kkk 3 jjj jai créé une table 1 PKCh1.1 Ch1.2 ---------- -------- 1 ppppp 2 mmm Ensuite jai créé 2 tables liaisons La premiere entre la table 3 et la table 2 FKCh3.1 FKCh2.1 ---------- ---------- 1 1 2 1 1 2 2 2 1 3 2 3 et la 2eme entre la table 2 et la table 1 FKCh2.1 FKCh1.1 ---------- ---------- 1 1 2 1 3 1 1 2 2 2 3 2 1 3 2 3 3 3 Mais bon, déja je me demande si cest juste et en plus quand je ferai une recherche a partir de la table 1 (ex champ 1) pour trouver les relations avec la table 3 (ex champ 3) je doute que ce soit hyper optimisé car je devrais passer par la table 2 (ex champ 2) Le seul avantage cest que jai supprimer la redondance d'info. Quel est votre avis ? PS : javais oublié : tout les (ex) champs sont obligatoires |
Donc si tu utilises les regles de Codd tu es en 3eme Forme Normal de Boyes and Codd (heu orthographe?) enfin en 3FNBC quoi :o)
|
Répondre à teebo
|
Salut teebo et les autres
Table 1 --------- PK_id ch1 ch2 ------- ----- ----- 1 aa zzz 2 aa kkk 3 aa jjj 4 bb zzz 5 bb kkk 6 bb jjj 7 cc zzz 8 cc kkk 9 cc jjj PK_id étant la clef primaire Table 2 --------- PK_id FKT1 ch2 ------- ----- ----- 1 1 mmmm 2 1 ppppp 3 2 mmmm 4 2 ppppp 5 3 mmmm 6 3 ppppp 7 4 mmmm 8 4 ppppp 9 5 mmmm 10 5 ppppp ..... PK_id étant la clef primaire et FKT1 étant une clef étrangere référent a la clef primaire de la table 1 ? parce que dans la table 1, elle peut quand meme etre encore normalisée quand on vois le champ ch1 pareil quand on voit la table 2 champ ch2 non? c'est pour ca que jutilise mes fameuse table liaisons. elles permettent de faire des relation 1->n, 1->n je m'explique : Table 1 1 - n liaisontable1_2 n - 1Table 2 1 - n liaisontable2_3 n - 1Table 3 ainsi, on ne répete pas les chaines de caractères tel que aa ou pppp mais plutot des champs uniquement numérique (moins lourd donc plus rapide) mais le probleme cest qu'avec mon systeme je dois faire plein de jointures (pas terrible question performance) surtout dans le cas ou quand je fait une recherche dans la table 1 par rapport a la table 3, je suis obligé de passer par la table 2 chose que dans le systeme teebo il ne faut pas en gros, je suis un peu perdu :-| qu'en pensez vous? |
Bonjour,
|
Le probleme est que je n'ai pas la base sous les yeux :o)
|
Citation ::
|