Должны сроки & amp; условия при регистрации будут занесены в базу данных?

Предположим, что число потенциальных значений GUID равно n, очень большому натуральному числу. Предположим также, что число уже выбранных значений k. Теперь вероятность (p) наличия дубликата в значениях зависит от n и k. n - очень большое натуральное число, но давайте посмотрим возможные значения k (я использую предположение, что все возможные значения имеют в основном одну и ту же вероятность):

k == 0

В этом случае вы получаете самый первый GUID, и невозможно получить дубликат. p == 0

k === n

В этом случае у вас уже есть все возможные значения, и невозможно получить дубликат. p == 1

0 & lt; = k & lt; = n

В этом случае вероятностью получения нового значения является:

p == (n - k) / n

, поскольку нам нужно исключить уже выбранные k элементов. С другой стороны, вероятность получения дубликата равна

p '== k / n

, поэтому с увеличением k, p уменьшается и p' увеличивается. Обратите внимание, что два первых случая - частные случаи этого общего случая. Теперь, каково может быть решение, чтобы вы не получили дубликат?

Ну, вы используете нижний регистр, что в основном уменьшает возможные значения до половины. Если вы избегаете использования нижних регистров, то n практически удваивается. Кроме того, вы можете использовать два конкатенированных значения guid для ваших новых значений, которые никогда не будут дублироваться для ваших значений, используемых ранее, поскольку они различаются по длине строки. Или, вы можете использовать id перед gui String.

1
задан jonrsharpe 19 January 2019 в 20:30
поделиться