Vous devez jeter un coup d'œil à vos structures de données.
Une clé primaire doit:
- jamais être NULL (aucune exception)
- fiable et identifie de façon unique chaque ligne unique
et aide si c'est
- petit et facile à utiliser
- stable (ne change pas du tout, ou du moins pas souvent)
- une seule colonne (ou au plus deux)
Vérifiez vos données - qui colonnes ou un ensemble de colonnes peuvent remplir ces exigences ?? Une fois que vous avez ces clés primaires potentielles (les «clés candidates») - pensez à la façon dont vous allez accéder aux données, et quelles autres données pourraient avoir besoin d'être associées à cette entité en question - qu'est-ce qui aurait du sens en tant que clé étrangère? Voulez-vous faire référence à votre ministère par son nom? Probablement pas une bonne idée, puisque le nom pourrait être mal orthographié, il pourrait changer avec le temps etc. Par le bureau du département? Mauvais choix aussi. Mais quelque chose comme un "ID de département" unique pourrait être une bonne idée.
Si vous ne trouvez pas de colonne (s) appropriée (s) dans vos données réelles qui pourraient servir de clé primaire et aurait du sens, il est courant d'introduire une "clé de substitution" - une colonne supplémentaire, souvent INT
(et souvent quelque chose comme un "auto-incrément" INT) qui servira d'identifiant artificiel pour chaque rangée. Si vous faites cela, une pratique d'excellence courante consiste à ne jamais montrer cette clé artificielle sur un écran de données - cela n'a aucun sens pour les utilisateurs de votre système - alors ne leur montrez même pas.
La vérification de ces exigences, et beaucoup d'expérience, vous aidera à trouver la bonne clé primaire.
Cette question revient à demander quel type de voiture je devrais acheter. Tant de variables "ça dépend", ce n'est pas drôle.Fondamentalement, vous regardez les données et vous vous demandez, comment puis-je identifier une rangée de façon unique? –