Сделал небольшое приложение на процедурном php + MySql. Часть функций, где удобно, реализовано в виде хранимых процедур. Вопрос по структуре приложения. У меня есть файл с функциями типа проверить залогинен ли пользователь, найти заказ, найти клиента и т.д., есть файл с данными для подключения к базе данных и еще пару файлов, плюс на каждую таблицу в базе данных, как минимум 4 файла <имя_таблицы>.php - вывод данных из таблицы <имя_таблицы>_<добавить>.php <имя_таблицы>_<удалить>.php <имя_таблицы>_<изменить>.php Приложение не сложное, все пока работает. Собственно вопрос, как сделать и правильно и лучше? На какие технологии смотреть? Интересует разработка учетных приложений, типа учет и выполнение заказов, склады и т.д.
Архитектура - это фундамент вашего приложения. По аналогии со строительством зданий для того чтобы внести изменения в конструкцию фундамента необходимо снести это здание. В вашем случае проще написать новое приложение с учётом всех ранее выявленных ошибок и структуры MVC. Смущает по 4 файла на таблицу.
Например удаление заказа, нужно удалить запись заказа (таблица заказов) и строки заказа (таблица содержимого заказов). Соответственно мне в хранимке сделать это гораздо проще и гораздо короче. --- Добавлено --- Вот и вопрос, а как меньше?
На счёт хранимок - полная ересь. Удаляется информация из бд одним запросом. Честно говоря я себе не представляю на сколько сложным должен быть алгоритм условий удаления, чтобы юзать процедуры. Но это точно не ваш случай.
А я привык пользоваться хранимками. И почему я должен переносить запросы из хранимок в php? И насчет удаления одним запросом - этот вариант проходит только в простых случаях, а в случае акций/скидок/пробников и т.д. одним запросом сложно обойтись.
@savsoft, зачем реализацию однотипных действий дублировать для каждой таблицы? Из примитивного апи делаете не пойми что. Я бы еще понял, если бы это шло нахлестом на дефолные действия, но как обязаловка – б-Э-Э.
@savsoft, зачем же вы пришли на форум за советом, если вам никто не указ и вы сами всё знаете? 50% всей работы над приложением - это организация структуры БД. И скорее всего БД у вас организована неправильно, раз с процедурами вам проще.
Вот фрагмент типичного апи: GET /таблица/запись – edit; POST /таблица/запись – save; GET на узловом элементе – список записей соотв. таблицы; POST на узловом элементе – создание/удаление записей. --- Добавлено --- У нас еще часто входят в апи AJAX-версии отдельных действий. И rename/save name, например: GET /таблица/запись?p=1 – edit с подсказкой номера страницы для возврата к списку; POST /таблица/запись?p=1 – save аналогично; GET /таблица/запись – rename; POST /таблица/запись – save name.
С хранимыми процедурами проще, потому что и весь мир, и я в том числе, с ними работал, когда еще и php не существовало. У меня проблема с php. Так как к работающей программе понадобилась веб-морда, заказчик решил часть функций перенести в веб. Я посмотрел пару курсов от lynda и быстро по аналогии сделал, как они показывали. А у них отдельный скрипт на каждое действие (CRUD). Дальше ясно, что нужно разобраться с ООП и выбрать MVC-фреймворк. А существующий код пусть пока работает, его улучшить, не переписывая - нельзя. Всем спасибо.
А у меня проблем с хранимыми процедурами нет. А с циклами в них вообще нет, ибо я очень редко пользуюсь курсорами. Вот с php да, проблемы. Только осваиваю.