Управляемый базой данных интерфейсный контроллер / Управление страницами Хорошо или плохо? - PullRequest
1 голос
/ 30 октября 2008

В настоящее время я работаю в пользовательской среде, которая использует базу данных для настройки объекта Page, который содержит информацию о модуле, представлении, контроллере и т. Д., Который используется Front-контроллером для обработки маршрутизации и т. П. В MVC (очевидно, ) шаблон.

Первоначальная причина обработки страниц в базе данных заключалась в том, что нам нужно было иметь возможность создавать новые целевые страницы на лету из интерфейса администратора, а также потому, что нам также необходимо было создавать события onLoad и onUnload, для которых могли бы использоваться другие динамические объекты. быть прикрепленным.

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

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

1 Ответ

3 голосов
/ 30 октября 2008

Обычно я довольно снисходительно отношусь к тому, что я позволю продолжить в «игрушечном» приложении, но я думаю, что есть некоторые вредные привычки, которых следует избегать, несмотря ни на что. Базы данных являются мощными инструментами, с достаточно мощными языками с помощью хранимых процедур для выполнения всего, что вам нужно, но они действительно должны использоваться для хранения и масштабирования доступа к данным, а также для обеспечения соблюдения ваших правил согласованности данных низкого уровня.

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

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

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

И, с другой стороны, никогда не принимайте советы других людей слишком очень близко к сердцу, если у вас есть система, которая работает хорошо и ее легко расширять. Каждый вариант использования немного отличается. Если ваша ремонтопригодность не страдает и служит бизнес-потребностям, она достаточно хороша.

...