Bonjour,
Quelle clé primaire primaire utiliser pour identifier une personne ?
Je vois sur tous les forums qu'il est déconseillé d’utiliser le Numéro de Sécurité Sociale ...
Merci.
Bonjour,
Quelle clé primaire primaire utiliser pour identifier une personne ?
Je vois sur tous les forums qu'il est déconseillé d’utiliser le Numéro de Sécurité Sociale ...
Merci.
Salut CliffeCSTL.
Dans quel contexte utilisez-vous cette personne ?
Quand on ne sait pas quoi mettre comme clef primaire, on utilise un incrément :
Ceci permet de rendre chaque ligne de votre table identifiable d'une manière unique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part `id` integer unsigned not null auto_increment primary key,
A chaque fois que vous insérez une nouvelle, la colonne 'id' est incrémenté de +1.
--> http://sqlpro.developpez.com/cours/clefs/
Il n'y a pas de bonnes ou de mauvaises solutions. Tout dépend de ce que vous cherchez à faire, avec cette clef !Envoyé par CliffeCSTL
Une clef dite primaire, doit être unique, ne doit pas changer de signification au cours du temps, et surtout doit être courte.
Une autre clef pouvant presque répondre à cette définition, serait de mettre un timestamp. L'inconvénient est sa longueur.
Ce que je vous ai donné ci-dessus, est une clef technique, porteuse d'aucune information particulière.
Plus généralement, il vous faut un point d'entré dans votre base de données. Cette clef incrémentale est la solution idéale.
Le débat entre une clef porteuse d'informations et une clef purement technique n'est toujours pas tranché.
@+
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
Il ne faut pas confondre non plus clé fonctionnelle, ou clé candidate, et clé technique.
Ici le N° de sécurité sociale est une très bonne clé candidate, permettant d'identifier une personne de manière plus fiable que son Nom-Prénom mais ne doit pas être utilisé comme clé primaire, déjà parce qu'il n'est pas certain que toute personne présente dans la table en possède un et surtout parce que 15 caractères pour un identifiant que l'on reportera dans toutes les les tables l'utilisant en clé étrangère, c'est très lourd.
Donc un identifiant fonctionnel, N° SS pourquoi pas, mais impérativement un identifiant technique, entier auto-incrémenté - géré par le SGBD et non par l'application.
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.
Bonjour à toutes et à tous
Je vais peut-être relancer un débat, mais j'avais compris qu'une clé primaire ne devait pas avoir de sens.
Est-ce que je débloque?
Pierre
Salut Pier.antoine.
Je te retourne la question : à quoi te sert une clef primaire dans une table ?
Et quel est l'usage que tu vas en faire ?
@+
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
Pas tout à fait, mais quasiment :
La contrainte est la stabilité de la clef primaire, sa valeur ne doit jamais changer, car si c'était le ce cas, les modifications en cascade sur les tables liées peuvent mettre par terre une base de données volumineuse.
Or la meilleure façon d'avoir une valeur stable, est d'avoir une valeur technique dénuée de sens, typiquement un chrono attribué par le système.
L'autre intérêt d'un chrono, est de permettre l'utilisation de format integer, beaucoup plus concis et performant que tout autre format de données pour les calculs dans la plupart des moteurs de bases de données.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager