|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : mai 2008 Messages : 52 ![]() |
Bonjour,
Je réalise un bête formulaire de modification d'une ligne dans une table SQL. Je n'utilise pas d'id auto-incrémentable, mais le champs 'name' comme clef primaire. Donc, dans le formulaire, j'ai un champs texte 'Name' qui se remplis automatiquement avec la bonne valeur. L'utilisateur peut le modifier. Toutefois, pour pouvoir appeler la ligne à modifier lors de l'envoie du formulaire, je veux stocker le Nom d'origine dans un input hidden appelé 'old name'. Donc, mes champs de formulaire Name et Old Name doivent être remplis avec la même valeur name par populate. Comment faire ? |
|
|
00
|
|
|
#2 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Salut,
Tu es devant un problème de conception. La clef primaire ne devrait pas être modifiable par formulaire (ni par un autre moyen d'ailleurs). Ne peux tu pas changer le schéma de la base donnée ?
__________________
|
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : mai 2008 Messages : 52 ![]() |
Merci de m'éclairer
Je peux utiliser des id auto incrémentés. Toutefois, il me semble que les index se mettent en place automatiquement sur les clefs primaires. Or, avoir un index sur un id n'est pas très intéressant, puisque la majorité des requêtes vont consister à faire des recherches sur les clefs primaires 'naturelles' (nom, titre, etc.). C'est encore plus vrai pour les tables de relations. De plus, cela permet de véritablement exploiter les fonctions du SGBD du type contrôle des doublons etc. Bref, je ne suis pas persuadé que mettre des ids auto incrémentés partout soit une très bonne pratique. Sur quoi est basé le principe de ne pas permettre à l'utilisateur de modifier les clefs primaires ? |
|
|
00
|
|
|
#4 | ||
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Citation:
En effet, mettre à jour une clef primaire va t'obliger à cascader sur toutes les tables qui utilisent cette clé comme clé étrangère. Pour ce qui est de maintenir tes contrainte d'unicité, les indexes uniques sont faits pour cela. Citation:
__________________
|
||
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : mai 2008 Messages : 52 ![]() |
oki, c noté boss
![]() Existe-t-il un livre ou un wiki où ces problématiques de bonnes pratiques et de performance sont sérieusement abordées ? |
|
|
00
|
|
|
#6 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Cet article pose déjà de bonnes bases : http://sqlpro.developpez.com/cours/optimiser/
__________________
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com