Mise à jour unique ou de clés primaires dans MySQL

Je suis en train de construire une base de données de l'outil de gestion pour un client à utiliser sur son propre, et je vais avoir un problème traitant avec la possibilité de la mise à jour des clés primaires/uniques. Donc, étant donné que les données pour la mise à jour est passé par un script PHP sur un par ligne, voici ce que j'ai trouvé (à partir de "immédiatement" à "après un certain temps"):

  1. DELETE/INSERT au lieu de la mise à JOUR (affreux, j'ai maintenant...):
    DELETE FROM table WHERE unique_key=x;
    DELETE FROM table WHERE unique_key=y;
    INSERT INTO table VALUES (unique_key=y, field=record1), (unique_key=x, field=record2);
  2. Modifier mon primaire/clé unique, puis de les remplacer par la valeur modifiée:
    UPDATE table SET unique_key=x* WHERE unique_key=x;
    UPDATE table SET unique_key=y* WHERE unique_key=y;
    UPDATE table SET unique_key=y WHERE unique_key=x*;
    UPDATE table SET unique_key=x WHERE unique_key=y*;
  3. Ajouter un pas modifiables auto_increment champ "id" de tous mes tableaux, qui agissent comme un substitut à la clé primaire

Comme maintenant, je suis sur la route de l'ajout d'un champ "id" de tout. D'autres options?

Je ne suis pas vraiment comprendre ce que votre cas est ici. Pourquoi auriez-vous besoin de mettre à jour les clés primaires comme ça sur une base régulière? Je suppose que peut-être que votre problème est plus avec la conception d'un schéma, puis la mécanique de la façon dont vous allez mettre à jour ces lignes. Vous mentionnez l'option numéro trois (ce qui est EXTRÊMEMENT pratique courante dans les bases de données relationnelles) comme si c'est un coup. Pourquoi ne pas vos tables ont immuable clés primaires pour commencer?
Merci pour votre réponse. Sûrement la base de données pourrait avoir été conçu mieux, je me suis prise en main. Comme pour la fréquence de la mise à jour de clé, le cas échéant, il sera fait chaque maintenant et puis, le fait est qu'il peut, et j'ai été demandé pour quelque chose qui leur permettent de modifier autant que possible (il doit être un mini-phpmyAdmin, de le dire).
Dans la pratique, il n'y a pas une telle chose comme un "immuable" de la clé. Clé de substitution des valeurs changent parfois trop. Stabilité est un utile et souhaitable de la propriété au moment de choisir et de concevoir des clés: l'immuabilité ne l'est pas.

OriginalL'auteur siberius.k | 2013-05-08