Une option serait de conserver une table de clés qui stocke simplement une valeur incrémentielle. Cela peut introduire quelques problèmes, à savoir des problèmes de verrouillage possibles ainsi que des accès supplémentaires à la base de données.
Une autre option pourrait être d'affiner ce que vous entendez par "Identifiant convivial". Il peut s'agir d'une combinaison d'une date/heure et d'une séquence spécifique au client (ou comprenant également l'identifiant du client). De plus, votre identifiant de commande ne doit pas nécessairement être la clé réelle sur la table. Rien ne dit que vous ne pouvez pas utiliser une clé de substitution avec une colonne "calculée" séparée qui représente l'identifiant de la commande.
En fin de compte, il semble que vous souhaitiez utiliser une clé de substitution, mais que vous bénéficiez des avantages d'une clé naturelle. Il peut être très difficile d'avoir le beurre et l'argent du beurre et beaucoup dépend de la façon dont vous prévoyez réellement d'utiliser les données, de la façon dont les utilisateurs interprètent les données et de vos préférences personnelles.