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

В каких случаях мы используем uuid как primary key? Хороша

ли правктика всегда использовать uuid для ID? К примеру таблица с странами - там он вообще не нужен по сути

10 ответов

11 просмотров

Зачем страны в таблице держать? Они динамически прирастают каждый день?

Roman-Dykyi Автор вопроса

стары не совсем страны - а табличка с полями is_hide, is_avaliable … своя бизнес логика. не в этом суть

uuid имхо нужно использовать для распределенных систем которые ведут параллельные списки записей с синхронизацией между собой у примеру если взять адресную таблицу ФИАС из налоговой (у них везде uuid) то разные системы могут однозначно идентифицировать территорию и хранить без привязки к численным идентификаторам

2 разные таблички - это уже можно сказать 2 распределённые системы

ну да, не нужно запариваться с пересечение идентификаторов uuid гарантированно уникален при генерации в разных таблицах

"распределенные системы"... "синхронизация между собой" - это ж антипаттерн)

гарантировано -> с определенной вероятностью -> не гарантировано -> у тебя врядли будут те объемы при которых ты напоришься на коллизию

ну там вероятность коллизии есть конечно но практически ничтожна

В библиотеке ramsey/uuid (если я не перепутал) была issue, мол у одного из разрабов коллизии пошли уже через лям уникальных записей. Не помню, правда, случайность ли это или баг библиотеки/генератора

обычно такое связано с херовым PRNG

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

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

Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
А чем вам питонисты не угодили?😂
.
79
Вот смотрите у меня есть два стрима сейчас fs, cs: TStream; fs := TFileStream.Create('filename'); cs := TCompressionStream.Create(compression_level, fs); Я хочу сделать так: ...
notme
5
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
83
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Hello. Could you please help me with finding all coordinates within a radius using a spatial index, given that I have a table with coordinates? SET @lng = 37.57925; SET @lat ...
Rinchin G
8
free(NULL) это UB?
#
8
Карта сайта