Галерея фотографий - Дизайн базы данных - PullRequest
6 голосов
/ 27 февраля 2011

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

photos_category
- photocat_id (P)
- name
- slug
(5, 'Cars', 'cars')



photos_albums
- album_id (P)
- photocat_id (F)
- name
- description
- active
(20,5,'BMW','Nice BMW cars',1)

photos
- photos_id (P)
- album_id (F)
- image
(33,20,'bmw_car4.jpg')

bmw_car4.jpg имеет оригинальный размер и будет расположен по адресу: /gallery/original/bmw_car4.jpg

Для интерфейса (с измененным размером):

Миниатюра: /gallery/thumbs/bmw_car4.jpg

Изображение: /gallery/images/bmw_car4.jpg

Ответы [ 2 ]

7 голосов
/ 27 февраля 2011

Ваш дизайн мне кажется правильным:

  • это просто и функционально,
  • нет дублирования информации,
  • и из одного объекта вы можете найти соответствующую информацию


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

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

  • /gallery/original/2011/01/: все изображения загружены в январе
  • /gallery/original/2011/02/: все изображения загружены в феврале
  • и т. Д.

Затем вы сохраните путь в таблице photos, а не только имя файла.

0 голосов
/ 06 апреля 2012

Оооо! Абсолютно необходимо включить поле в таблицу изображений, в котором хранится тип документа. Это очень удобно для извлечения изображений, а также, если вы забудете ограничить загружаемые файлы, вы можете сразу увидеть, какие типы загружаются, которые вам не нужны, а также какие типы вы хотите поддерживать и которые в настоящее время не поддерживаются. т. У меня были люди, загружающие текстовые документы, содержащие изображения, которые вы видите, и я подумал «Что за хей» и добавил поддержку для них. Хранение файлов вне базы данных - отличная идея. Я сделал ошибку: alt, имя, описание, создал, последний раз изменил там, когда я использовал базу данных для фактического хранения самих изображений, а размер содержимого данных изображений означал, что получение результатов было ОЧЕНЬ МЕДЛЕННЫМ. Вы проделали большую работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...