Rule of thumb
Если в стандарте, документации или технологии упоминаются гуиды или в структурах присутствуют поля вида object_id, class_id, instance_id - с 99% вероятностью это будет дичайше непригодное к использованию ИТ-шайзе, придуманное людьми, которые не умеют делать нормальные API (или, что почти эквивалентно - не понимают, что такое системы типов) и вместо того чтобы подумать - делают "универсальное решение".
no subject
no subject
остальным объектам (инстансам) можно что угодно - гуиды, автоинкременты, если объекты не постоянные - то вообще можно не идентифицировать.
no subject
no subject
no subject
В других случаях лучше все именовать явно, кроме автоматически генерируемых идентификаторов объектов - те желательно числовыми, а гуиды - если очень хочется распределенные БД делать.
Я скорее про всякие кишки, вот как здесь: http://lwn.net/Articles/391230/
no subject
Но я с базами, вообще говоря, крайне мало дела имел. До такой степени, что не так давно реляционная алгебра (когда основная сущность - не строка таблицы, а множество) стала для меня откровением (я застрял в эпохе dBase II, где, насколько я помню, кроме таблиц и индексов практически ничего и не было - для задач уровня "показать Master-Detail" этого хватало).
Ну и да - я говорил именно про автоматически генерируемые id. Довольно нелепо спрашивать у клиента id, не выдав его предварительно.
no subject
в целом, тут идея такая: не использовать гуиды для вещей, у которых есть имена, а использовать их только для автогенерации уникальных идентификаторов.
no subject
Хотя, если подумать - видится исключение: создание однородной структуры для well-known и user-generated хрени (ну там, у объекта есть цвет, форма и размер, а юзер может прихреначить ещё 100500 параметров). Это, как я понимаю, тот самый случай EAV.
no subject
no subject
no subject
И будет известная история про деньги и тумбочку.
no subject
no subject
no subject
no subject
no subject
Идентификаторы (гарантированно уникальные) нужны во многих случаях, если речь стоит о сшивке разных систем.
no subject
Метамодели наше всё.
Хотя если структура данных - метамодель, то до такого, как instance_id, уже не доходит.
no subject
no subject
Была б моя воля, я бы удалял только особо бредовую половину:)
no subject
Генерировать для них GUID? А чем это отличаться от id_user будет?
или вообще о чем пост?
no subject
Как вам подход использовать в качестве суррогатного первичного ключа первые 8 символов гуида строкой и концепцию "вставлять пока не вставится" ? Я очень долго дивился, когда это увидел.