Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1675 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP MySQL] Clef primaire multiple ?(prob. réglé + infos législation)

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP MySQL] Clef primaire multiple ?(prob. réglé + infos législation)

n°359601
Gurumedita​tion
Dépoussiérant
Posté le 12-04-2003 à 20:16:30  profilanswer
 

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
mood
Publicité
Posté le 12-04-2003 à 20:16:30  profilanswer
 

n°359626
diomio
ça sent le sapin
Posté le 12-04-2003 à 21:39:38  profilanswer
 

gurumeditation a écrit :

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 ???


 
j'ai envie de dire >> google groups  :)


---------------
"Only Bikers understand why dogs love to stick their heads out car windows"
n°359627
diomio
ça sent le sapin
Posté le 12-04-2003 à 21:41:17  profilanswer
 

gurumeditation a écrit :

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 ???


 
autre chose, en France il est interdit d'utiliser le numéro de sécurité sociale comme clé. heureusement d'ailleurs.


---------------
"Only Bikers understand why dogs love to stick their heads out car windows"
n°359633
mrbebert
Posté le 12-04-2003 à 22:23:38  profilanswer
 

Je sais pas si tu peux faire une clé primaire sur plusieurs champs [:figti]  
Mais tu peux créer un index unique :)

n°359640
snipix
Combien dites-vous ? 30 THz ?
Posté le 12-04-2003 à 22:44:53  profilanswer
 

   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  ;)


---------------
La raison du plus fort est toujours la plus forte.... Parce que c'est comme ça NA !
n°359649
nraynaud
lol
Posté le 12-04-2003 à 23:15:50  profilanswer
 

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.


Message édité par nraynaud le 12-04-2003 à 23:18:39
n°359650
dropsy
et bonne chance surtout...
Posté le 12-04-2003 à 23:17:35  profilanswer
 

gurumeditation a écrit :

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 ???


 
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+

n°359675
Gurumedita​tion
Dépoussiérant
Posté le 13-04-2003 à 00:07:50  profilanswer
 

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 :(
 
 

n°359682
nraynaud
lol
Posté le 13-04-2003 à 00:23:21  profilanswer
 

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.

n°359695
Gurumedita​tion
Dépoussiérant
Posté le 13-04-2003 à 00:49:28  profilanswer
 

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...

mood
Publicité
Posté le 13-04-2003 à 00:49:28  profilanswer
 

n°359846
Gurumedita​tion
Dépoussiérant
Posté le 13-04-2003 à 18:00:52  profilanswer
 

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 :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP MySQL] Clef primaire multiple ?(prob. réglé + infos législation)

 

Sujets relatifs
[PHP] temps minimal pour generer un cookie[PHP] Cherche un script qui affiche le contenu d'un mail.
[PhP et Free] Session_start et header location[PHP] Generer de l'ascii art
[MySql] J'ai une idée, mais j'arrive pas à la mettre en oeuvre ! Help[PHP & ASP] Logiciel qui transforme du ASP en du PHP
[PHP]Récuperer le résultat d'un SUM en PHP ?[PHP] Probleme pour supprimer une variable de session
[PHP] Pb de connection hôte distant mysql_connect() 
Plus de sujets relatifs à : [PHP MySQL] Clef primaire multiple ?(prob. réglé + infos législation)


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR