Clefs primaires ISO VS clefs primaires techniques autoincrémentées.
Bonjour à tous,
Je me demande à quels moments je dois préférer les clefs ISO aux clefs autoincrémentées.
Je pense notamment aux tables de référence,
pour lesquelles une clef primaire ISO est systématiquement préférée à une clef primaire technique autoincrémentée ?
table de pays exemple
Nom en français |
CodeISO3166 |
Albanie |
AL |
Algérie |
DZ |
Allemagne |
DE |
Focaliser le commentaire sur vos choix de clefs, pour chaque table de votre projet;
- 2018/09/DOS001 , destiné au gestionnaire, pour ouvrir un dossier en cours. Quelle est la recette pour fabriquer ce genre de clef ?
- DZ: référence de pays code ISO 3166, pour identifier un pays
- 1 : clef primaire technique autoincrémentée à masquer au gestionnaire (secondant une clef candidate porteuse d'un index unique à révéler au gestionnaire)
Etude issue de cas réels de MPD :
- Comment raffermir son choix d'ériger en clef primaire : clef naturelle, clef ISO ou clef technique ?
- Dans quels cas la clef naturelle, même composée, est elle exceptionnellement élevée au rang de clef primaire ?
- Peut on confier exceptionnellement le droit de création d'une clef naturelle dans une table de référence, par le gestionnaire lui-même, ou doit-on systématiquement confier ce rôle à un trigger ?
- Dans le cas de création d'une clef naturelle, par le gestionnaire lui-même dans une table de référence,la table doit-elle systématiquement contenir, par sécurité, une clef primaire technique autoincrémentée ?
- Dans un tableau, peut on lister les clefs d'un gros projet qui tourne comme une horloge ? (nom_de_la_table,usage_de_la_table,une_valeur_de_la_clef_primaire,une_valeur_de_la_clef_alternative,observation)
A la lecture de la règle d'or, d'Yves TABOURIER, doit on proclamer sans hésiter,
"Les clefs primaires de nos tables ne sont que : code iso, clef technique autoincrémentée et clef technique hachée"
Merci beaucoup pour votre aide éventuelle, et vos retours d'expériences !
Merci à vous, épris de sagesse , qui n'oubliez pas le passé, et ne condamnez pas autrui à le revivre...
Nous offrirez-vous synthétiquement, en 2 pages, un guide de survie à partir d'un gros projet réalisé ?
A chaque fois que je choisis mes clefs de table, je suis victime de la pesanteur, pendant un décollage sur la planète mars.
Newbee qui se morfond avec son trousseau de clefs tout neuf !!:calim2:
cas des tables de références familles et sous-familles
Bonjour escartefigue !
Merci pour la mise à plat du grand principe !
Voici une situation particuliere que j'aimerai évoquer :
J'ai 3 tables
- tm_article,
- tr_couleur,
- tr_FamilleCouleur
Après avoir fait deux cercles chromatiques, je me rend vite compte que toutes les couleurs appartiennent à des familles.
En considérant un cercle chromatique resserré de 6 couleurs :
les trois couleurs primaires, le jaune, le rouge, le bleu
+ le vert, le violet et l'orange ( les secondaires) cela donne 6 familles de couleurs.
Mais j'aime autant essayer de classer les couleurs en 3 familles seulement :
- la famille des jaunes
- la famille des rouges
- la familles des bleus
Bien sûr certaines couleurs peuvent être " limites" mais la répartition ainsi est assez pratique
Exemple :
les ocre jaune, terre de sienne naturelle, terres d'ombre ... sont dans la famille jaune ;
les bleu de prusse, bleu indigo, gris de payne... sont dans la famille bleu
les terre de sienne brûlée, rouge indien, brun rouge, marron de pérylène... sont dans la famille rouge
EXTRAIT DE LA TABLE tr_couleur
pk_couleur |
nom_couleur |
fk_FamilleCouleur |
jau001 |
ocre jaune |
jau |
jau002 |
terre de sienne naturelle |
jau |
jau003 |
terre d'ombre |
jau |
EXTRAIT DE LA TABLE tr_FamilleCouleur
pk_famillecouleur |
nom_famille |
jau |
jaune |
rou |
rouge |
ble |
bleu |
Je peux utiliser tr_nuancecouleur, qui contient 12 nuances (Ce qui justifie davantage la création d'une table)
Je ne sais pas si il est nécessaire de créer une table de référence, lorsque celle-ci contient uniquement 3 valeurs distinctes tr_famillecouleur(nom_famillecouleur{jaune,rouge,bleu})
Je sais que je n'aurais aucune autre nuance dans ma table tr_nuancecouleur (règle de gestion)
1 - BLEU CHAUD : évoquant les ciels d'été, tirant sur le violet (outremer français)
2 - BLEU VERITABLE : bleu sans nuance violette, ni verte (bleu de cobalt)
3 - BLEU FROID : bleu intense, tirant sur le vert (bleu Winsor, nuance verte)
4 - BLEU-VERT : vert froid (vert émeraude)
5 - JAUNE-VERT : vert chaud (vert de vessie permanent)
6 - JAUNE FROID : jaune citron, tirant sur le vert (jaune citron Winsor)
7 - JAUNE CHAUD : jaune beurre, tirant sur l'orange (jaune de cadmium pâle)
8 - JAUNE IMPUR : jaune sombre ou moutarde (terre de sienne naturelle)
9 - ROUGE CHAUD : rouge clair,vif, tirant sur l'orange (laque écarlate)
10 - ROUGE FROID : lie de vin ou cramoisi, tirant sur le violet (alizarine cramoisie)
11 - ROUGE IMPUR : orange sombre ou brun rouge (terre de sienne brûlée)
12 - MAGENTA : couleur vive de fleur, plus rose que pourpre (magenta)
Comment construire les cles de mes deux tables de référence tr_couleur et tr_famillecouleur, ou tr_couleur et tr_nuancecouleur
sachant que je veux saisir l'article et lui affecter sa couleur précise,
et que je veux rechercher l'article par sa famille de couleur, ou sa nuance de de couleur ?
Quant aux clefs ISO, ne sont elles pas destinées à aider les systèmes à communiquer entre eux ?
Ai-je intérêt à utiliser une clef "à ma façon", pour avoir astucieusement accès à ma famille de couleur,
et simplifier ma requête de recherche des familles de couleurs, avec une seule jointure entre tm_article, et tr_couleur ?
Ai-je raison, dans les tables de référence, de préférer intuitivement une clef "parlante" à une clef auto-incrémentée ?
Dois-je arrêter immédiatement avec mon mauvais réflexe de "faire parler des clefs", à partir d'éléments de l'information stockée dans ma table de référence ?
La clef auto-incrémentée, vide de sens, est-elle largement préférable ?
Prenons 4 tables de références imbriquées, sur 3 niveaux d'arborescence.
Existe-t-il une recette qui fonctionne particulièrement bien ?