Przechowywanie pierwotnie wprowadzonej nazwy użytkownika i wersji kanonicznej (małe litery dla Twojej aplikacji) jest całkowicie rozsądne. Po prostu upewnij się, że pole kanoniczne jest aktualizowane w Twoim modelu za każdym razem, gdy ustawiona jest nazwa użytkownika, i sprawdź, czy nie doszło do naruszeń ograniczeń za pomocą unikalnego indeksu pola kanonicznego.
Innym scenariuszem, w którym to rozwiązanie (pole oryginalne i kanoniczne) ma sens, to artykuły, w których ten sam tytuł może zostać ponownie wykorzystany, ale slug (dla adresów URL) musi być unikalny.