История про уникальные ID заиграла новыми красками:

Nov 22, 2016 12:40

Мой пост собственно был навеян постом bowhill посвященным пропаганде нехитрой идеи, что в БД нехорошо закладываться на "хорошие" свойства данных из внешенго мира ибо:
внешние данные не контролируются системой, а значит, не контролируется и схема, её качество. Ну и что? Помимо прочего, написал для себя несколько кратких утверждений ( Read more... )

Leave a comment

Comments 103

moonwalker72 November 22 2016, 09:49:13 UTC
Вариант Guid'ов принципиально не рассматривался? Я имею в виду - вместо имени. Идеально вообще чтобы у всех при рождении был Guid. А имя можно потом какое угодно написать. Да и менять его хоть раз в месяц.

Reply

chieftain_yu November 22 2016, 09:54:01 UTC

1) необходимо обеспечить уникальность гуидов
2) необходимо обеспечить возможность восстановить гуид в случае утери
3) необходимо обеспечить возможность смены гуида
4) для ряда очень специальных людей необходимо пользоваться несколькими независимыми гуидами
5) для ряда людей необходимы гуиды из прошлого, которые не выявлялись бы как гуиды из прошлого...

Сложная задача. 

Reply

cdf_easy November 23 2016, 10:05:00 UTC
Гуиды практически уникальны, собственно для этого их и придумали.
Даже просто рандомный 128-битный гуид будет повторяться раз в миллион лет, гуид основанный на дате повторяться не будет никогда(ну если вы не регистрируете людей триллионами в секунду в миллионе фмс с немного различающимися часами).

Reply

kouzdra November 22 2016, 09:54:35 UTC
Так проблема не в этом - паспортов с одинаковыми номерами быть не должно - но они есть. С SSN (в которые так верит Вова), вообще как оказывается жопа.

Именно что нельзя закладываться на гарантии что "все правильно".

Reply


slobin November 22 2016, 09:50:17 UTC
Тут фигня ещё в том, что очень мало программистов имеет дело непосредственно с физическим внешним миром. Для большинства баз данных "внешний мир" -- это другие базы данных. Поэтому правильное утверждение -- БД, которую вы не контролируете, наверняка неконсистентна. (Которую вы контролируете -- скорее всего, тоже, но к такой революционной мысли не все готовы :-). А когда в последний раз вы обрабатывали данные непосредственно из реального мира?

... ti'e loi rusko jdini cu ruble ...

Reply

kouzdra November 22 2016, 10:11:41 UTC
В смысле СУБД - лет 20 назад (но с тех пор я СУБД и не занимался), а так - в смысле например творчества программистов (в том числе прошедшего через компилятор) постоянно - и таки да. Может быть что уггодно

Reply

vitus_wagner November 22 2016, 11:17:01 UTC
Я базы данных не обрабатываю, я их разрабатываю. И тем не менее, последний раз мы с shaplov развлекались обработкой данных из внешнего мира меньше года назад - подключили к компьютеру датчик содержания углекислоты в воздухе офиса и обрабатывали его результаты.

Reply

the_toad November 22 2016, 12:31:59 UTC
Теперь я знаю, кто пишет все эти косожопые программы для обработки сигналов с датчиков ;-)

А то вот с одними ругался недавно. Не, данные оно собирает, с достаточным разрешением. Но блядь идея сделать так, чтобы там было не так много говна, авторам в голову не приходила...

Reply


chieftain_yu November 22 2016, 09:50:23 UTC

Плюс это никак не мешает некорректные данным, узаконенным через суд.
Так, в свое время судом было признано, что документы с датой рождения 30 февраля - годные.

Reply

misha_makferson November 22 2016, 10:36:09 UTC
>Так, в свое время судом было признано, что документы с датой рождения 30 февраля - годные.
Но как, Холмс? :-)

Reply

chieftain_yu November 22 2016, 11:47:21 UTC
Выяснилось - я немного напутал, но проблема та же.

Reply

ping_ving November 22 2016, 15:21:02 UTC
То есть нолевое нолября (подозреваю, на деле нуллевое нуллября) - это нормальная по умолчанию дата?

Reply


nikname November 22 2016, 10:24:34 UTC
В одном банке с очень большой клиентской базой эмпирически решили, что двух клиентов с одинаковыми ФИО + дата рождения + место рождения быть не может.

Reply

kouzdra November 22 2016, 10:28:57 UTC
Это-то не только может быть - но даже довольно вероятно - задачка о совпадающих днях рождения же почти - только количество вариантов чуть больше.

Reply

nikname November 22 2016, 10:40:04 UTC
На базе из десятков миллионов клиентов таких двойников не нашлось.

Reply

kouzdra November 22 2016, 12:16:34 UTC
Повезло. Но вероятность совпадения - десятые % если не единицы

Reply


zoghozzerofive November 22 2016, 11:44:55 UTC
база данных должна жрать любые данные, а вот алгоритм, их обрабатывающий и принимающий на ее основе решения должен учитывать эту любизну.

Reply

spqr_voldi November 22 2016, 12:49:15 UTC
Этак база данных быстро становится одним большим блобом.

Reply


Leave a comment

Up