170 похожих чатов

Ребят! На сколько хорошо, генерировать уникальный код к заказу, таким

образом вызывая в save() методе:

На сколько большая вероятность того, что рандомайзер будет постоянно попадать на уже существующие,
и запускать функцию снова. И на сколько вероятно, затормаживание создания заказа из-за этого?

Допустим поток будет, 100 заказов в день, и они будут оставаться в базе, не удаляться.

def generate_order_id(self):
"""" Generation order code id """
order_code = ''.join(random.choice(string.digits) for i in range(7))
if Orders.objects.filter(order_id=order_code).exists():
return self.generate_order_id()
return order_code

2 ответов

6 просмотров

напиши тест: складывай номера в set(), генери их в цикле (ну хотя бы до 100.000, это три года работы кода при 100 заказах в день) и смотри, как быстро начнутся первые коллизии и сколько они будут разруливаться ближе к концу работы.

uuid генерь, там на 100к точно коллизий не будет

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
Хтось використовував Vapor на Windows?
Jaroshevskii
15
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Оба варианта в целом подходят, но скорее создание конфликтной ситуации (на пустой основе). В прошлый раз он сказал мне про ESP32, я забыл про этот микроконтроллер, ошибся, я п...
КТ315
4
Карта сайта