Есть ли реальные преимущества использования РСУБД по сравнению с плоскими файлами в простой системе веб-документов (или базовой CMS)?

Проект

Меня попросили поработать над интересным проектом, представляющим собой простую Web CMS, в котором используются HTML/CSS/jQuery с PHP. Однако одно требование заключается в том, что не будет базы данных для хранения данных (им нужны плоские файлы для документов/страниц — предпочтительно в формате JSON).

В самом общем смысле, он будет использоваться для создания HTML-страниц через очень «нетехнический» интерфейс. Каждая установка будет иметь только около 20 страниц, но у некоторых может быть до 100. Должно быть довольно легко зайти на сервер с поддержкой PHP и запустить его, с очень небольшой настройкой.

Что снаружи

Существует множество вариантов CMS и довольно много версий плоских файлов. Но OSS или другая существующая CMS не вариант. Им нужна простая система приличий.

Первоначальные мысли

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

Конечно, файлы документов довольно просты, но мы также говорим об информации для входа в систему для 1 или 2 администраторов на установку, нескольких списках, а также конфигах/настройках (которые также могут быть легко сохранены в файле с защитой).

Дилемма

Если есть преимущества использования MySQL, а не форматированных файлов JOSN и некоторых массивов в таком простом проекте, как этот - за пределами моих собственных предвзятых представлений :) - я обязательно их оспорю.

Но, честно говоря, я не вижу ничего, что перевешивало бы их потребность в отсутствии системы баз данных.

Буду признателен за понимание и мнения.


person Community    schedule 10.07.2009    source источник


Ответы (9)


Если вы не можете назвать конкретную потребность в дизайне реляционных таблиц, значит, вы хорошо разбираетесь в плоских файлах. Стройте, как указано. В тот момент, когда вы можете назвать конкретную потребность, дайте им знать; обновление не так сложно, если ваше восприятие своевременно (то есть, если вы не в состоянии нормализовать данные, которые должны были быть интегрированы ранее).

person Smandoli    schedule 10.07.2009

Жаль, что вы не можете использовать CouchDB, это кажется идеальным приложением для этого. Имейте в виду, что использование плоских файлов сильно ограничивает вашу архитектуру и особенно масштабируемость.

Каков наилучший сценарий для вашего приложения CMS? Это успешно, и люди хотят использовать его больше? Если вы используете плоские файлы, будет сложнее обслуживать и улучшать вашу систему (например, сделать ее более надежной и добавить новые функции для будущих версий), а производительность будет плохо масштабироваться. Таким образом, «успех» в этом случае в лучшем случае недолговечен, поскольку успех означает все больше и больше работы при все меньшем и меньшем увеличении набора функций и производительности.

person Wedge    schedule 10.07.2009

Опять же, если CSM спроектирован правильно, то переключение между плоским файлом и RDMS должно быть таким же простым, как использование другого файла доступа к данным.

person testking    schedule 24.07.2011

Будет ли это установлено на любых сайтах виртуального хостинга. Чтобы это работало безопасно, необходимо настроить такой механизм, как suEXEC. правильно, так как веб-серверу потребуются права на запись в различные каталоги.

person Sinan Ünür    schedule 10.07.2009

Что было бы здорово с простым сайтом, который загружался через JSON и jQuery, так это то, что сайту не нужно было бы загружаться при каждом клике. Просто соответствующие данные изменятся. Затем вы можете использовать хэши в адресной строке, чтобы отслеживать, где вы были (например, http://localhost/#about)

Проблема в том, что если они редактируют необработанный файл JSON, они могут довольно быстро его испортить. Я думаю, что ваши инструменты администратора должны будут генерировать файлы JSON на основе ввода, чтобы вы могли убедиться, что ничего не сломается. Инструменты администратора будут более сложными, чем сайт (хотя это не всегда так с динамическими сайтами).

person RedWolves    schedule 10.07.2009
comment
Слишком много сайтов делают это, потому что это «круто». Пользы практически нет, особенно на традиционном сайте публикации контента. - person Rex M; 11.07.2009
comment
но он не говорит о традиционной CMS... он говорит о проприетарной системе, которая хранит данные в плоских файлах. - person RedWolves; 11.07.2009

Каков прогнозируемый объем данных для CMS?

Основной причиной использования RDMS является быстрый, специфический доступ к большим объемам данных. Формат данных может быть небольшим, но если данных много, то в долгосрочной перспективе это может быть лучше для RDMS.

Опять же, если CSM спроектирован правильно, то переключение между плоским файлом и RDMS должно быть таким же простым, как использование другого файла доступа к данным.

person Robert DeBoer    schedule 10.07.2009

В то время как RDBMS может быть необходима для очень большой CMS, маленькая может очень хорошо работать с плоскими файлами. Я думаю, что многие CMS-продукты терпят неудачу в этом отношении, добавляя РСУБД, когда в них нет реальной необходимости.

Однако, если вы используете плоские файлы, есть проблемы с безопасностью, на которые обращают внимание другие пользователи. Еще одна проблема, с которой я столкнулся, заключается в том, что хостинг-провайдеры используют disable_functions в php.ini, чтобы отключить функции файлового ввода-вывода, такие как fopen() и подобные. Если вы размещаете свою CMS на компьютере, которым управляете, у вас не будет этой проблемы, но если вы используете стороннего поставщика, сначала проверьте.

person Ken Keenan    schedule 10.07.2009

Как оригинальный постер, я не вошел в систему, поэтому я до сих пор следую ответам в ответе (извините, если это плохой тон).

  • Могут быть случаи, когда это находится на общем хосте.
  • Хотя технически файлы JSON можно редактировать, это не так. Интерфейс администратора будет достаточно надежным, чтобы выполнять все операции по созданию/редактированию страниц.
  • Размер каждой установки будет относительно небольшим -- 1-2 администратора, 10-100 страниц. Некоторые списки общих элементов могут занимать больше времени (например, фрагменты текста).
  • Безопасность будет большой проблемой - какие-либо другие предложения по этому поводу?
person Wil Harper    schedule 10.07.2009

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

Они могли услышать такие аргументы, как лучшее обслуживание, более низкая стоимость обслуживания, гораздо лучшая передача другому веб-мастеру, чем проприетарные решения (они не зависят от вас) и т. д.

person Tomas    schedule 24.07.2011