У меня есть дочерний проект SaaS для выставление счетов. В нем я хочу, чтобы каждый мой клиент начинал с номера тикета 1001. Понятно, что я не могу использовать простое автоматическое поле в Postgres и просто добавить 1000 к значению, потому что все мои клиенты будут совместно использовать одну и ту же базу данных и один и тот же ticket
table.. Я пытался использовать столбец типа integer и выполнять запросы (псевдо SQL) SELECT LATEST number FROM ticket WHERE client_id = [current client ID]
, чтобы получить последний номер, а затем используя это число + 1
, чтобы получить следующее число
. Проблема в том, что при параллелизме два билета могут заканчиваться одним и тем же номером. число, которое мне нужно, чтобы иметь возможность сделать это в Django или с необработанным SQL (по сравнению с использованием Bash или чего-либо еще в этом роде).
Я не ищу способ заставить мой пример работать. Я просто ищу решение моей проблемы, связанной с необходимостью независимого увеличения номеров билетов для каждого клиента.