Как правильно организовать таблицу

Bosha

Новичок
Как правильно организовать таблицу

День добрый.

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

Eugene Bond

sudo rm - rf /
1 табличка: названия рубрик
2 табличка: название фото, номер рубрики, имя файла картинки (варианты: расширение файла, вообще поле не делать)
3 табличка: коментарии к фотографиям
 

zahhar

двинутый новичок
Re: Как правильно организовать таблицу

Автор оригинала: Bosha
Но, если эта таблица (коммент.) станет очень большой не проще ли будет хранить комментарии в таблице с фотками в виде текстового поля в опред. формате?
Можно ли так сделать? Какой вариант окажется быстрее?
Сделать-то конечно можно, но зачем парсить текстовое поле и тем самым плодить корявый-дерявый-тормозной код, если есть стандартное для таких случаев решение, изложенное выше?

Если бы к каждой фотке полагался только один комментарий (например, описание автора работы) - то его было бы правильно хранить в той же таблице. А вы имеете дело с двумя объектами: "фотка" и "комментарий", который находятся в связи "одна фотка - много комментариев". Значит делаем для комментариев отдельную табличку со своей структурой.

Что касается хранения фоток, то я позволю себе пояснить идею предыдующего оратора: для фотки можно вообще не выделять отдельного поля в таблице, если по условию задачи у вас все фотки были, есть и будут в одном фиксированном формате. например, jpg. Тогда закачиваемую фотку переимуновываете в [id].jpg, где [id] - код записи, описывающей эту фотку в таблице.
 

Bosha

Новичок
Да, спасибо. Я думаю что наверное так и сделаю. Мне просто нужно было еще чье-то мнение.

Насчет хранения фоток. Будет отдельная таблица с ее параметрами (назв., описание, дата, автор, и проч.) в качестве имени я думаю использовать timestamp или id.
 

zahhar

двинутый новичок
Использование Timestamp теоретически не самый удачный выбор. Если об уникальности id заботится mysql, о правильности mysql_insert_id - php, то timestamp с точностью до секунды обеспечит уникальность только одной записи в секунду. Если же в одну секунду будет обработано более одного запроса на генерацию имени файла, то оба они получат одинаковое имя и... сами понимаете. Поэтому при использовании timestamp нужно или фиксировать его с точностью до миллисекунд (что тоже имеет ограниченную степень свободы при генерации уникальных значений), или (предпочтительно) отказаться от него вообще в пользу другого решения.
 

Bosha

Новичок
Об этом я не подумал. Я так понимаю что лучшим выходом будет в данной ситуации использование ID фотки в таблице?

И при наличии всех фоток в одном формате от поля имени файла вообще отказаться.
 

Eugene Bond

sudo rm - rf /
Еще добавлю, что если у апача стоит mod_mime то все картинки можно складывать как [id].jpg, а Апач уже сам выдаст правильный заголовок, будет файл в формате jpeg, gif или png
 
Сверху