С ростом NoSQL, в наши дни более распространено иметь веб-приложение без какой-либо модели?

0

С появлением NoSQL, более распространено ли в наши дни иметь webapp без какой-либо модели и обрабатывать все в контроллере? Это плохой шаблон в веб-разработке? Почему мы должны абстрагировать нашу связанную с базой данных функцию в модели, когда достаточно легко получить данные в nosql?

Примечание Я не спрашиваю, не является ли RDBMS/SQL актуальным, потому что это только начнет flamewar.

Теги:
nosql

3 ответа

4
Лучший ответ

Я не думаю, что "NoSQL" имеет какое-либо отношение к "нет модели".

Во-первых, MVC возникла в мире Smalltalk для настольных приложений задолго до того, как существовала существующая архитектура веб-сервера (или даже сама сеть). Большинство приложений, которые я написал, использовали MVC (включая M), даже те, которые не использовали СУБД (R или иначе).

Для другого, некоторые виды "NoSQL" явно имеют модель. База данных объектов может выглядеть в коде приложения почти так же, как и интерфейс, который пытается "открыть SQL RDBMS + ORM", но без всех странных причуд и явного сопоставления и т.д.

Наконец, вы, очевидно, можете пойти другим путем и написать приложения на базе SQL без модели. Это может быть не очень красиво, но я видел, как это было сделано.

0

Усилия NoSQL связаны с созданием уровня персистентности, который масштабируется с помощью современных приложений с использованием ненормированных структур данных для быстрого чтения и записи и форматов данных, таких как JSON, стандартный формат, используемый системами на основе ajax. Иногда бывает, что реляционные базы данных, основанные на транзакциях, недостаточно хорошо масштабируются, но чаще всего низкая производительность напрямую связана с плохим моделированием данных, плохим созданием запросов и плохим планированием.

Никакой уровень сохранения не должен иметь ничего общего с вашей моделью домена. Используя уровень абстракции данных, вы преобразуете данные, содержащиеся в ваших объектах, в схему, реализованную в вашем хранилище данных. Затем вы использовали бы тот же DAL для чтения данных из своего хранилища данных, преобразования и загрузки его в свои объекты.

Вашим хранилищем данных могут быть файлы XML, RDBMS, такие как SQL Server или реализация NoSQL, такие как CouchDB. Это не имеет значения.

FWIW, я создал и унаследовал множество приложений, которые вообще не использовали модель. Для некоторых нет необходимости, но если вы используете объектную модель, она должна соответствовать потребностям приложения, а не хранилищу данных, а не уровню представления.

0

Базы данных SQL по-прежнему являются порядком дня. Но становится все более распространенным использование неструктурированных магазинов. Базы данных NoSQL хорошо подходят для некоторых веб-приложений, но не обязательно для всех.

Сообщество Overcoder
Наверх
Меню