Каково ваше мнение об использовании в качестве идентификаторов UUID, строки базы данных , в частности, веб-приложений ?

я всегда предпочитал использовать длинные целые числа в качестве первичных ключей в базах данных, для простоты и (предположительно) скорости. Но при использовании ОТДЫХА или Рельсы-как схемы URL экземпляры объекта, я бы тогда в конечном итоге с Url вида:

http://example.com/user/783

И тогда предположение, что существуют также пользователей с Идентификаторами 782, 781, ..., 2 и 1. Если предположить, что web-приложение на вопрос является достаточно безопасной, чтобы предотвратить лиц, поступающих в другие номера просмотра другими пользователями без авторизации, простой последовательно присваиваются суррогатного ключа также "утечки" общее количество экземпляров (старше), в этом случае пользователи, которые могут быть закрытой информацией. (Для меня, например, user #726 в stackoverflow.)

- UUID/GUID быть лучше? Тогда я мог бы задать Url-адреса, например:

http://example.com/user/035a46e0-6550-11dd-ad8b-0800200c9a66

Не совсем кратким, но там меньше подразумеваемых информацию о пользователях на дисплей. Конечно, это попахивает "security through obscurity", которое не может заменить собственную безопасность, но кажется, по крайней мере немного более безопасным.

в том, что пособие в размере стоимости и сложности реализации UUID для веб-адресно-экземпляры объекта? Я думаю, что я бы все-же хотите использовать целое число столбцов в качестве базы данных PKs просто для ускорения соединения.

еще один вопрос в базе данных, представление UUID. Я знаю, MySQL хранит их как 36-символьные строки. Postgres кажется, есть более эффективное внутреннее представление (128 бит?) но я не пробовал это на себе. Кого-нибудь есть опыт в этом?


Update: для тех, кто попросил об используя имя пользователя в URL (например, http://example.com/user/yukondude), который прекрасно работает для экземпляров объектов с именами, которые являются уникальными, но то, что об миллион web app объекты, которые действительно могут быть определены только по номеру? Заказы, сделок, инвойсов, дублирующиеся имена образов, stackoverflow вопросы, ...

Найдено 15 ответов:

What's your opinion on using UUIDs as database row identifiers, particularly in web apps?

http://stackoverflow.com/questions/5949/whats-your-opinion-on-using-uuids-as-database-row-identifiers-particularly-in

Посмотреть решение →