Уникальные идентификаторы (идентификатор GUID) хорошее для сайта имена файлов?

У меня дебаты с коллегой программистом (PHP), и мы оба не согласны, когда дело доходит до GUIDs. Предполагая, что информация о каждом изображении хранится в БД и имеет свой собственный первичный ключ (int).

какие причины могут быть для использования уникального идентификатора для имени файла изображения, помимо необходимости беспокоиться о повторяющихся именах файлов?

Я не хочу игнорировать его методологию, но мне это не нравится любой.

спасибо! Бен!--1-->

обновление: Услышав много +1 для GUID, как на SEO могут повлиять "случайно" сгенерированные имена файлов изображений? (Спасибо Сукумар)

4 ответов


какие причины могут быть для использования уникального идентификатора для имени файла изображения, помимо необходимости беспокоиться о повторяющихся именах файлов?

использование первичного ключа с автоматическим приращением для имени файла позволит угадать URL - адреса других изображений, которые могут быть нежелательными-в зависимости от того, как работает ваша система, пользователи могут, например, получить доступ к изображениям, которые не предназначены для публикации (пока).

Я думаю, что использование уникальных идентификаторов неплохая идея.


преимущества использования GUID для имен файлов

  • получить непредсказуемые имена.
  • имена, которые масштабируются (не нужно беспокоиться о переименовании файлов, когда БД разделена).

недостатки использования GUID для имен файлов

  • хранить дополнительные данные в базе данных.

преимущества использования первичного ключа БД по имени

  • сохраняет хранение путем уменьшение потребности для дополнительного колонна.

недостатки использования первичного ключа БД для имен файлов

  • создает предсказуемые имена файлов, позволяющие пользователям "угадывать".

резюме: это компромисс, который вам нужно рассмотреть на основе ваших требований. Тем не менее, больше предпочтений отдается выбору GUIDs.


UUID очень удобно, когда вам нужно непредсказуемой имена файлов, поэтому никто не мог загрузить все файлы без правильных URL-адресов.


Если вы храните его в базе данных, используя первичный ключ, я бы предложил использовать его как уникальный идентификатор (и, следовательно, имя файла). Не имеет смысла иметь два уникальных столбца в базе данных, идентифицирующих один ресурс. Кстати, я бы не использовал поле автоматического приращения для этого первичного ключа. Это легко угадать другие идентификаторы изображений, которые могут быть нежелательными.

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