Хранение тел сообщений в базе данных или файлах?

Я изучаю веб-ориентированное программирование, пишу себе блог, используя PHP с базой данных MySQL. Это должно заменить мой текущий (на основе Drupal) блог.

Я решил, что пост должен содержать некоторые данные: id, userID, title, content, время публикации . Это делает хорошую схему для таблицы базы данных. Однако у меня возникли проблемы с выбором способа организации хранения контента.

Я мог бы:

  1. Использовать файловую систему. Затем таблица базы данных content будет URL-адресом локального файла, который я затем прочитаю, отформатирую и отобразлю.
  2. Хранить все содержимое поста в content, т.е. помещать в базу данных.

Если бы я выбрал (1), поиск по содержимому сообщений был бы немного проблематичным — я был бы ограничен поиском по метаданным или мне пришлось бы читать содержимое каждого файла при поиске (хотя я не знаете, какая это будет проблема - grep -ir "string" . не слишком медленный...).Однако на изображения (если они есть) можно ссылаться по URL-адресу, поэтому ссылка на контент будет, по крайней мере, внутренне согласованной методологией, и я смогу легко повторно использовать контент, поскольку с текстовыми файлами невероятно легко работать по сравнению с файлом базы данных SQL.

Однако при выборе (2) я мог бы использовать длинный текст. Затем контент необходимо будет очистить, прежде чем я попытаюсь поместить его в кортеж, и я ограничен размером (хотя маловероятно, что я напишу сообщение в блоге размером 4 ГБ;). Искать было бы легко.

Я (в настоящее время) не вижу, какой способ будет (а) проще реализовать, (б) с ним легче жить.

Куда мне идти/как это обычно делается? Любые дополнительные плюсы/минусы для (1) или (2) будут оценены.

5
задан simont 7 March 2012 в 19:04
поделиться