metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-12-11 08:10 pm

Rule of thumb

Если в стандарте, документации или технологии упоминаются гуиды или в структурах присутствуют поля вида object_id, class_id, instance_id - с 99% вероятностью это будет дичайше непригодное к использованию ИТ-шайзе, придуманное людьми, которые не умеют делать нормальные API (или, что почти эквивалентно - не понимают, что такое системы типов) и вместо того чтобы подумать - делают "универсальное решение".

[identity profile] veter-r-r.livejournal.com 2014-12-12 09:03 pm (UTC)(link)
И что прикажете делать ежели например надо получить баланс пользователя? По имени их дергать? так они, сволочи, совпадать могут.
Генерировать для них GUID? А чем это отличаться от id_user будет?

или вообще о чем пост?

[identity profile] maksenov.livejournal.com 2014-12-13 06:28 am (UTC)(link)
Таки вы совсем о другом - вот если бы вы имели кортеж (type_id, object_id, instance_id) чтобы однозначно идентифицировать пользователя - такой себе аналог EAV, тогда вас бы можно было остреливать. А если вы делаете искусственный первичный ключ для конкретного типа, число или гуид (в зависимости от задачи), то в этом нет ничего плохого.

Как вам подход использовать в качестве суррогатного первичного ключа первые 8 символов гуида строкой и концепцию "вставлять пока не вставится" ? Я очень долго дивился, когда это увидел.