|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : juillet 2006 Messages : 88 ![]() |
bonjour,
je travaille actuellement sur une base de données de grande taille (une centaine de tables) et je cherche donc à optimiser ma base. Dans cette optique, j'ai une table "Dossier" qui possède un champs transfert. Ce champ peut prendre deux valeurs : "total" ou "partiel". J'aimerai savoir s'il vaut mieux que le champs transfert prenne la valeur en chaine de caractères ou s'il est plus judicieux de stocker la clé étrangère d'une table qui garde en mémoire les deux types de transferts? |
|
|
00
|
|
|
#2 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2005 Messages : 35 ![]() |
D'un point de vue espace disque, il est préférable que tu es une clé étrangère car sa taille sera plus petite que celle valeur complète.
D'un point de vue accès aux données, moins tu auras de jointures, plus cela ira vite. Maintenant, tu peux avoir une solution intermédiaire qui te donne une redondance d'information à gérer. mais qui permet d'être performant en espace disque et en accès. Tu peux faire une clé étrangère et lorsque tu as besoin d'accéder au libellé en faisant une traduction de la clé (case pour sybase, decode pour oracle). Seulement une modification du libellé va t'obliger à modification chaque traduction que tu auras faite. Ton choix ne pourra se faire qu'en sachant bien quels sont les accès et quel est le risque d'évolution des données. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com