En ce qui concerne la conception de tables de données statiques. Avoir des données statiques dans des tableaux comme montré:Données statiques SQL/listes de recherche IDENTIFICATEUR
- Devises (code, nom). Exemple de ligne: USD, Dollar des États-Unis
- Pays (code, nom). Exemple de ligne: DE, Allemagne
- XXXObjectType (code, nom, ... attributs supplémentaires)
- ...
est-il logique d'avoir une autre colonne (ENTIER) comme une clé primaire, afin de toutes les références de clé étrangère l'utiliseraient-elles?
solutions possibles:
- Utilisez ENTIER supplémentaire PK et FK
- code d'utilisation (généralement CHAR (N), où N est faible) PK et FK
- Utilisez le code seulement si moins qu'une certaine taille ... Quelle taille?
- Autres
_______
Quelle serait votre suggestion? Pourquoi?
J'ai généralement utilisé les colonnes INT IDENTITY
, mais très souvent le fait d'avoir le code court est assez bon pour montrer à l'utilisateur sur l'interface utilisateur, auquel cas la requête aurait un JOIN de moins.
Merci. J'ai une table avec DATEs (pas YEARS), mais j'utilise DATE lui-même comme un PK. Là, je stocke plusieurs attributs pré-calculés comme DOW, IsWorkDay (pas en semaine), PreviousWorkDay etc ... – van
+1. Nous faisons cela là où je travaille. Je déteste ça. Je dois joindre 4 ou 5 tables juste pour comprendre les données réelles d'un enregistrement à moins que je sache que l'ID de pays 43 signifie que la personne vit aux États-Unis .... Tout pour "Optimisation" – kemiller2002
Selon le type de valeurs de recherche vous utilisez, j'essaierais plutôt de chercher un ensemble normalisé d'abréviations. Par exemple les listes ISO pour les pays et les codes de devise. Cela peut être assez intuitif pour les utilisateurs finaux. –