Chodzi o numer zamówienia, nie ma uwierzytelniania użytkownika jako że zamówienie jak i opłata mogą zostać dokonane bez założenia konta.
Tak, "losowanie" jak najbardziej jest dobrą opcją tylko że właśnie jak to losować? Chodzi o to żeby w 50% przypadków nie dostawać wyjątku z bazy danych i próbować na nowo, bo to się odbije na wydajności i user experience.
Trzymanie i generowanie sekwencji w bazie danych może być jedną z opcji - wie ktoś jak najlepiej do tego podejść? Tzn jak wziąć sekwencyjny int z bazy danych, na jego postawie stworzyć kod (string zawierający numer sekwencyjny) i zapisać to tak aby w tym samym czasie ktoś nie wyciągnął tego samego numeru i nie spróbował również go użyć? Ujmując to inaczej - jak zwiększyć wartość numeru w bazie przy wyciąganiu go, a nie zapisywaniu?
Idealnie numer zamowienia powinien byc w miare ciezki do odgadniecia, a wiec jakis numery sekwencyjny moze byc jego czescia, ale caly numer nie powinien sie na nim opierac.