Kpegumop, можно по другому, менее велосипедный путь ![]()
* с другого вм сайта на мыслю натолкнули
Kpegumop, можно по другому, менее велосипедный путь ![]()
* с другого вм сайта на мыслю натолкнули
soyz2o12, имея всего лишь файл для записи, который нужно разрешить изменять 10 раз, других путей, лично я не вижу
Привет всем, помогите решить, как лучше организовать хранение и вывод прикреплённых файлов на php+sql. Т.е. пользователь может прикреплять любое количество файлов к сообщению.
Итак, есть таблицы:
users (id | login)
mail (id | author | files) -- в поле `files` сейчас хранятся id прикреплённых файлов из таблицы `files`, разделённые пробелами
files (id | filename)
В принципе, есть в уме рабочий вариант, но он напрягает по затратам. Т.е. в цикле выводятся все сообщения, а внутри вывода каждого сообщения есть цикл, разбирающий строку `files` и делающий кучу выборок из таблицы `files`. Т.е. если на странице 10 сообщений и у каждого сообщения 10 прикреплённых файлов, то получается, что делается 110 выборок. Круто, да? В общем, подскажите, кто что может, пожалуйста.
P.S. Хранить в таблице сообщений сами имена очень не хочется. Шардинг в планах, но принципиально проблему не решает.
soyz2o12, можно в sqlite-таблице или обычном файлике хранить кол-во изменений.
Hipsta, добавь в таблицу еще номер письма, в файлов таблицу пиши все файлы как отдельная запись, посчитать количество файлов по номеру письма не проблема, зачем пробелом разделять, одна запись один файл, так и отдавать проще будет
Hipsta, из писем убрать поле для файлов оно там не нужно вовсе
select * from mail join files on mail.id = files.post_id
достанет все сообщение и файлы в один запрос
# Hipsta (02.10.2013 / 01:06)Можно сделать что бы в конце сообщения при загрузке добавлялся ббтеги например [file=file.zip][file=file1.zip][file=file2.zip]
Привет всем, помогите решить, как лучше организовать хранение и вывод прикреплённых файлов на php+sql. Т.е. пользователь может прикреплять любое количество файлов к сообщению.
Итак, есть таблицы:
u
Hipsta, мне кажется что из за фанатичной оптимизации, про удобство забываем ) я не заморачивался б с количеством запросов и писал бы прикрепленные файлы в отдельную таблицу с идентефикатором сообщения. на край можно при получении сообщений получить количество прикрепленных файлов и если больше одного, давать ссыль на отдельную страницу, где и вывести список файлов(избавляемся от цикла в цикле). Ну и у себя например я сделал эти файлы временными. удаляю их через неделю. сообщения, это не файлохранилище )) отдал файл и хорош.
мне кажется что из за фанатичной оптимизации, про удобство забываем