TheRec Posté 28 Juillet 2005 Posté 28 Juillet 2005 Au moment ou tu as réflechi et modélisé ta base de données tu n'a pas décomposé le "problème" (le cas que tu souhaite traiter) sufisamment. Tu te retrouves avec des données redondantes (même données dans des tables différentes)... pour palier à ce problèmes il faut revoir la modélisation de ta base de données. Mainteant comme j'ai di précédemment, pour un projet d'envergure raisonnable ce n'est pas un point critique. A toi de juger s'il est nécessaire de re-modéliser ta base de données
Boumbadaboum Posté 28 Juillet 2005 Auteur Posté 28 Juillet 2005 En fait plus qu'un insuffisance de modélisation des tables, certe probable, je dirais que c'est une insuffisance de connaissance du langage SQL qui me contraint à créer des tables un peu redondantes. Par exemple comme je ne sais pas bien comment effectuer une requête comprenant une clef étrangère, et bien je "bidouille" une table avec des données redondantes. Ca me permet d'avoir l'affichage souhaité coté client, mais ce n'est certe pas la solution idéal à moyen terme. Il faudra surement revoir les tables un de ces jours c'est sur. En fait je ne mesure pas bien les conséquences possibles d'une table mal construite (les données redondantes prennent de la place certe, mais à part cela? )
TheRec Posté 28 Juillet 2005 Posté 28 Juillet 2005 Effectivement c'est une autre possibilité. L'usage des clé étrangère est forcément incontournable créer de lien entre les tables. Les conséquences sont comme tu l'a mentionné une perte de place (quoiqu'à l'heure actuelle on a tendance à ne plus trop s'en préocupper...), sur des grande quantitées de données un temps d'accès plus long (ça reste dans l'ordre des millisecondes je pense...) mais le plus important c'est la cohérence des données, à plus ou moins court terme tu risque d'avoir des différence entre tes tables...si je vulgarise, tes données ne seront plus "synchronisées", ces différence peuvent causer des problèmes..surtout lorsque tu en viens à les comprarer pour établir un lien entre deux tables, c'est une des principales raison pour lesquelles on ne relie pas (dans la théorie) en se basant sur une chaine de caractères... Ceci est un bon exemple d'opération "à risque" si tes données ne sont plus "synchronisées"... UPDATE `annuaire` SET `categorie` = 'sociale' WHERE `libelleDef` = 'ambiance'; (J'ai repris ton exemple, mais ce n'est pas pour le critiquer, c'est ce qu'il faut faudrait si tu n'utilisait pas de clés étrangères !)
Boumbadaboum Posté 28 Juillet 2005 Auteur Posté 28 Juillet 2005 Ok merci Une question pour me situer: Vous avez quel niveau en informatique en général, vous autres qui répondez sur ce sujet par exemple. Je veux dire: Pour s'y connaitre en sql au moins comme vous il faut un bac +2, + 4? 3 ans de pratique sur le tas? personnellement j'ai un moins de pratique avec les BD et trois mois avec php
TheRec Posté 28 Juillet 2005 Posté 28 Juillet 2005 (modifié) Presonnellement je suis pas Français... je suis un "petit" (1m94 quand meme) Suisse... J'ai fait un apprentissage d'informaticien avec un bac technique, un début d'étude supérieurs pour devenir ingénieur en informatique orientation développement. Je dois avoir qqch come Bac+1 Mais bon je développe depuis très longtemps et j'ai toujours été très auto-didacte...avec les avantages et les inconvénients que cela implique Les années de pratique on va dire.. euh j'ai 21ans...j'en ai passé 11 à développée au niveau professionnel et privé. J'en ai fait mon métier à plein temps en créant un entreprise cette année avec un associé...mais très de présentation, on est pas dans la partie "Nouveaux membres" ;D ... Modifié 28 Juillet 2005 par TheRec
Boumbadaboum Posté 28 Juillet 2005 Auteur Posté 28 Juillet 2005 Ok merci ça m'aide à situer le niveau Félicitations pour ta boîte et bosses dur !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant