Jedną z opcji byłoby zachowanie tabeli kluczy, która po prostu przechowuje rosnącą wartość. Może to spowodować kilka problemów, a mianowicie możliwe problemy z blokowaniem, a także dodatkowe trafienia do bazy danych.
Inną opcją może być doprecyzowanie tego, co rozumiesz przez „Identyfikator przyjazny dla użytkownika”. Może to składać się z kombinacji daty/godziny i sekwencji specyficznej dla klienta (lub również z identyfikatorem klienta). Ponadto identyfikator zamówienia niekoniecznie musi być rzeczywistym kluczem na stole. Nie ma nic do powiedzenia, że nie można użyć klucza zastępczego z oddzielną „obliczoną” kolumną, która reprezentuje identyfikator zamówienia.
Najważniejsze jest to, że brzmi tak, jakbyś chciał użyć klucza zastępczego, ale miał zalety klucza naturalnego. Może być bardzo trudno mieć to w obie strony i wiele sprowadza się do tego, jak faktycznie planujesz korzystać z danych, jak użytkownicy interpretują dane i osobiste preferencje.