Являются ли уникальные идентификаторы (GUID) хорошими для имен файлов изображений на сайте? - PullRequest
8 голосов
/ 08 августа 2011

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

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

Я не хочу игнорировать его методологию, но мне это тоже не подходит.

Спасибо!Бен

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

Ответы [ 4 ]

12 голосов
/ 08 августа 2011

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

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

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

4 голосов
/ 08 августа 2011

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

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

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

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

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

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

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

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

Резюме : Это компромисс, который вы должны рассмотреть исходя из своих требований. Похоже, что предпочтение отдается выбору GUID.

1 голос
/ 08 августа 2011

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

0 голосов
/ 08 августа 2011

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

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

...