Rule of thumb
Dec. 11th, 2014 08:10 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Если в стандарте, документации или технологии упоминаются гуиды или в структурах присутствуют поля вида object_id, class_id, instance_id - с 99% вероятностью это будет дичайше непригодное к использованию ИТ-шайзе, придуманное людьми, которые не умеют делать нормальные API (или, что почти эквивалентно - не понимают, что такое системы типов) и вместо того чтобы подумать - делают "универсальное решение".
no subject
Date: 2014-12-11 05:12 pm (UTC)no subject
Date: 2014-12-11 05:20 pm (UTC)остальным объектам (инстансам) можно что угодно - гуиды, автоинкременты, если объекты не постоянные - то вообще можно не идентифицировать.
no subject
Date: 2014-12-11 05:21 pm (UTC)no subject
Date: 2014-12-11 05:38 pm (UTC)no subject
Date: 2014-12-11 05:49 pm (UTC)В других случаях лучше все именовать явно, кроме автоматически генерируемых идентификаторов объектов - те желательно числовыми, а гуиды - если очень хочется распределенные БД делать.
Я скорее про всякие кишки, вот как здесь: http://lwn.net/Articles/391230/
no subject
Date: 2014-12-11 06:05 pm (UTC)Но я с базами, вообще говоря, крайне мало дела имел. До такой степени, что не так давно реляционная алгебра (когда основная сущность - не строка таблицы, а множество) стала для меня откровением (я застрял в эпохе dBase II, где, насколько я помню, кроме таблиц и индексов практически ничего и не было - для задач уровня "показать Master-Detail" этого хватало).
Ну и да - я говорил именно про автоматически генерируемые id. Довольно нелепо спрашивать у клиента id, не выдав его предварительно.
no subject
Date: 2014-12-11 06:17 pm (UTC)в целом, тут идея такая: не использовать гуиды для вещей, у которых есть имена, а использовать их только для автогенерации уникальных идентификаторов.
no subject
Date: 2014-12-11 06:26 pm (UTC)Хотя, если подумать - видится исключение: создание однородной структуры для well-known и user-generated хрени (ну там, у объекта есть цвет, форма и размер, а юзер может прихреначить ещё 100500 параметров). Это, как я понимаю, тот самый случай EAV.
no subject
Date: 2014-12-11 06:30 pm (UTC)no subject
Date: 2014-12-11 07:33 pm (UTC)no subject
Date: 2014-12-11 09:05 pm (UTC)И будет известная история про деньги и тумбочку.
no subject
Date: 2014-12-12 12:10 am (UTC)no subject
Date: 2014-12-11 08:08 pm (UTC)no subject
Date: 2014-12-11 06:32 pm (UTC)no subject
Date: 2014-12-11 08:06 pm (UTC)no subject
Date: 2014-12-11 09:31 pm (UTC)Идентификаторы (гарантированно уникальные) нужны во многих случаях, если речь стоит о сшивке разных систем.
no subject
Date: 2014-12-12 05:39 am (UTC)Метамодели наше всё.
Хотя если структура данных - метамодель, то до такого, как instance_id, уже не доходит.
no subject
Date: 2014-12-12 10:40 am (UTC)no subject
Date: 2014-12-12 01:27 pm (UTC)Была б моя воля, я бы удалял только особо бредовую половину:)
no subject
Date: 2014-12-12 09:03 pm (UTC)Генерировать для них GUID? А чем это отличаться от id_user будет?
или вообще о чем пост?
no subject
Date: 2014-12-13 06:28 am (UTC)Как вам подход использовать в качестве суррогатного первичного ключа первые 8 символов гуида строкой и концепцию "вставлять пока не вставится" ? Я очень долго дивился, когда это увидел.