Clef primaire multiple ?(prob. réglé + infos législation) [PHP MySQL] - PHP - Programmation
Marsh Posté le 12-04-2003 à 21:39:38
gurumeditation a écrit : Voila, j'ai un soucis, plus avec mysql que php d'ailleur. |
j'ai envie de dire >> google groups
Marsh Posté le 12-04-2003 à 21:41:17
gurumeditation a écrit : Voila, j'ai un soucis, plus avec mysql que php d'ailleur. |
autre chose, en France il est interdit d'utiliser le numéro de sécurité sociale comme clé. heureusement d'ailleurs.
Marsh Posté le 12-04-2003 à 22:23:38
Je sais pas si tu peux faire une clé primaire sur plusieurs champs
Mais tu peux créer un index unique
Marsh Posté le 12-04-2003 à 22:44:53
ton erreur, c'est que tu n'as pas d'index unique (comme l'indique notre confrère du post précedent), alors ajoute un champ 'numero' avec l'état auto incrément et le tour est joué !!!
petit conseil, toujours avoir une clé primaire dans une table de type auto incrément, ca evite tous les problèmes de doublons et c'est très utile comme clé etrangère dans les autres tables
Marsh Posté le 12-04-2003 à 23:15:50
Aussi naze que soit MySQL, le manuel spécifie qu'une clef primaire peut être multiple :
http://www.mysql.com/documentation [...] EATE_TABLE
Tu ne peux en avoir qu'une (de clef pas de colone) et tu n'as pas le choix de son nom.
Evidement, il serait intéressant de mettre un index sur les colones de ta clef (car ça accélère la recherche des doublons lors des inserts), mais c'est uniquement pour des raisons de perfs et n'a rien d'obligatoire (dans le monde des bases de données au moins, dans celui de MySQL c'est peut-être plus compliqué).
edit : gloup
Citation : KEY is a synonym for INDEX |
mouais, c'est vraiment n'importe quoi cette appli ; oublie mon post et tape toi la doc, vu quye rien de ce qui a cours dans le monde des BDD à cours chez MySQL.
Marsh Posté le 12-04-2003 à 23:17:35
gurumeditation a écrit : Voila, j'ai un soucis, plus avec mysql que php d'ailleur. |
amha t'as du te planter quelque part. vérifie bien ta syntaxe de création de clé primaire, chez moi ça marche nickel les clés primaires sur deux colonnes (dernière version de prod de mysql)
A+
Marsh Posté le 13-04-2003 à 00:07:50
merci pour les réponses, par contre le coup du c'est interdit, j'aimerai bien savoir d'ou ca vient (sérieusement, ca fait 2 fois qu'on me le dit, et j'aimerai bien avoir le texte de loi qui le dit. La base est de toute facon déclarée a la CNIL )
c'est une appli pour une école, et le NSS en clef primaire c'est carrément pratique .
dropsy> le probleme c'est que quand je spécifie que les 2 champs composent la clef primaire (primary key(nss,annee) ) il fait en fait comme si la table avait 2 clef primaires distinctes, ce qui est un peu lourd ...
la création des tables, je l'ai faite a la main, puis avec phpmyadmin, et ca change rien
Marsh Posté le 13-04-2003 à 00:23:21
gurumeditation a écrit : merci pour les réponses, par contre le coup du c'est interdit, j'aimerai bien savoir d'ou ca vient (sérieusement, ca fait 2 fois qu'on me le dit, et j'aimerai bien avoir le texte de loi qui le dit. La base est de toute facon déclarée a la CNIL ) |
Je pense que tu peux commencer tes recherches juridique du côté de l'interdiction qui a été donnée au ministère des finances de l'utiliser.
Marsh Posté le 13-04-2003 à 00:49:28
y'a pas un lien par la ?
je me base sur les textes de la cnil (www.cnil.fr) et j'ai pas vraiment trouvé quoi que ce soit la bas...
Marsh Posté le 13-04-2003 à 18:00:52
bon ben ca peut peut etre interesser du monde, j'ai trouvé la solution a mes problemes :
1/ c'est tout a fait légal d'utiliser le NSS dans une base de donnée a partir du moment ou l'utilisateur en est averti, et que cette info n'est pas divulguée.
2/le pb que j'avais: le NSS était déclaré en int de longueur 15 (unsigned) et tronquait a 11 ou 12, je ne me souviens plus . De plus, phpmyadmin remettait automatiquement comme nss et comme année ce qu'on avait mis dans le premier enregistrement ...
a la limite, je peux comprendre que INT est inférieur a 15 chiffre. M'enfin l'année sur 4 chiffres elle déconnait aussi ...
probleme réglé en passant tout en char
Marsh Posté le 12-04-2003 à 20:16:30
Voila, j'ai un soucis, plus avec mysql que php d'ailleur.
J'ai une table avec une clef primaire composée de 2 champs. Probleme :
msql a l'air de considerer que la table a 2 clefs primaire => des qu'on a duex enregistrements avec 1 des 2 champs identique, ca bloque.
les 2 champs sont N° sécurité sociale et année scolaire qui forment en fait un dossier scolaire .
On peut avoir 2 x le meme NSS dans le cas d'un redoublant, donc on prends une clef composée de l'année et du NSS.
help ???
Message édité par Gurumeditation le 13-04-2003 à 18:01:23