Всем привет, в одном из давних проектов помню прогер использовал views в базе mysql, сейчас мне при каждой загрузке стр. нужно брать из базы диапазон дат и проводить с ними разные манипуляции, потом это все выводить на график, и таких графиков в каждом из которых входит десяток диапазонов дат может быть примерно 5-10, т.е. нужно много манипуляций и обращений к базе делать, я вот думаю может сделать такую view в базе в ней написать нужную логику при помощи которой она будет собирать данные по таблицам и обрабатывать их и потом просто делать обращение к ней и вывод, так вот сам плохо знаком с данным инструментом и прошу подсказать стоит ли использовать views что бы большая часть работы была внутри базы или делать как обычно на сервере?
почему?, есть же разница между тем когда база будет внутри себя бегать и собирать все что нужно и тем когда собирать эти самые данные делая множество запросов по таблицам, конечно это хорошо заметно только в больших масштабах но все же, или я не прав?)
Сергей БАрд, что с view, что без, база будет внутри себя собирать данные согласно sql запроса. Только со view sql запрос уже будет в базе храниться и в нее поступать в виде alias-а. Когда хренячишь sql запрос ручками на 4000 строк, в этом есть благо. Когда работаешь через AR, то смысла нет.
...сделать такую view в базе в ней написать нужную логику при помощи которой она будет собирать данные по таблицам и обрабатывать их и потом просто делать обращение к ней и вывод...
Если логика не ограничивается одним запросом, то речь идет не о представлении (view), а о хранимой функции/процедуре.
Функции удобны тем, что если у вас куча приложений, то они дают некий единый API к данным, если надо сделать правки в хранимой функции (если это не касается интерфейсной части), то потом не нужно лазить по всем исходникам приложений и делать синхронные правки, избегаем стрельбы дробью.
Минус - некоторая часть логики, которую могла делать серверная часть приложения ляжет нагрузкой на СУБД слой.