Вниз  MySQL и мелкие вопросы
- 22.07.2014 / 16:36
web_demon
  Супервизор

web_demon 
Сейчас: Offline
boNNdaR, делаешь две таблицы - одну с новостями, другую с файлами. При добавлении файла записываешь в отдельное поле id статьи.

Либо сделать одну таблицу, и в отдельном поле хранить сериализованный массив с именами файлов, прикрепленных к статье.

Второй вариант будет гораздо легче и проще в реализации.
- 22.07.2014 / 17:12
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
web_demon, чем плюс первого варианта тогда?
- 22.07.2014 / 17:13
boNNdaR
  Пользователь

boNNdaR 
Сейчас: Offline
Что имеется в виду под словосочетанием "сериализованый масив"?
- 22.07.2014 / 17:25
web_demon
  Супервизор

web_demon 
Сейчас: Offline
Ксакеп, можно сделать просто список файлов, можно удалить файл и не трогать при этом новость. Но что касается вывода новостей, и особенно загрузки файлов - ад полнейший. Красиво реализовать получится только с помощью всяких модных ныне либ типа mysqli или pdo.

Что имеется в виду под словосочетанием "сериализованый массив"?У примеры у тебя есть файлы: BIGtits.jpg и xxx18+.png

Ты запихиваешь все это в массив, к примеру ключ
  1. $file_array = array('BIGtits.jpg', 'xxx18+.png');
Массив нужно сохранить но в базу его так просто не засунуть, поэтому делаем так:
  1. $to_baze = serialize($file_array);
И на выходе получаешь строку, которая содержит бред (сериализованный массив), и отправляем ее в базу в поле column.
Чтоб получить массив обратно делаем так:
  1. $file_array = unserialize($data['column']);

Ах, да, минус в том что нужно будет хранить в базе чуть больше данных, но это вовсе не критично.

Изменено web_demon (22.07 / 17:27) (всего 2 раза)
- 22.07.2014 / 17:33
boNNdaR
  Пользователь

boNNdaR 
Сейчас: Offline
Ого, круто. Я и не знал что сериализация это так круто. Спасибо.
- 22.07.2014 / 17:46
web_demon
  Супервизор

web_demon 
Сейчас: Offline
boNNdaR, только я говорил не про сами файлы, а их имена на сервере. А то еще неровен час сами файлы засунешь в базу :-D
- 22.07.2014 / 23:07
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
boNNdaR, запись некоторого объекта в виде последовательности байт. В java, например, нужно имплементировать интерфейс Serializable, чтобы затем использовать ObjectStreamXxx, для чтения записи без лищних проблем.
- 22.07.2014 / 23:58
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
две таблицы, первая это новость
ид заголовок текст
файл
ид имя ид_новости(ключ)
удалил файл, новость не трогаем, сериализ конечно тоже вариант, но если не изменять поля, то есть удалил фото, менять сериализ в записи
по поводу blob
можно хранить картинки в бд, но файл на сервере будет всегда удобнее, обработка , прямая ссылка на файл, индексация роботами
пробовал разные варианты, и с хранением в таблице, не удобно
__________________
 Магистр Мёда
- 23.07.2014 / 00:55
web_demon
  Супервизор

web_demon 
Сейчас: Offline
Koenig, ну так сериальзованный массив хранить просто как строку - text, а не blob. Или я тебя неправильно понимаю.

Насчет хранения в БД самих файлов - очень не советовал бы так делать. База и в онли-текстовом варианте со временем становится труднопереносимой (я то с нашей вечно воюю, а ведь сайт не такой большой), а с файлами гораздо раньше достигнет "критической" точки. Да и тормознее этого и придумать сложно: много трафика и очень долгое соединение с базой до добра не доведут.
- 23.07.2014 / 06:53
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
блоб я для файлов имел ввиду, строки хранить в текстовых полях
__________________
 Магистр Мёда
Наверх  Всего сообщений: 750
Фильтровать сообщения
Поиск по теме
Файлы топика (22)