|
|
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Я занимаюсь разработкой небольшой erp под определенные нужды (не убийца 1С). Разработчик я не очень опытный поэтому хотел бы поинтересоваться у профессионалов: Стоит ли переносить большую часть логики связанной с БД в хранимые процедуры или лучше это обрабатывать в модели приложения? Бизнес логика состоит как из простых CRUD запросов, так и из сложных запросов, которые затрагивают одновременно большое количество таблиц. Как себе я представляю архитектуру: простые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Возможно я что-то забыл упомянуть, надеюсь вы меня поправите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2015, 17:00 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimelпростые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Сложно давать советы не зная ваших задач. Никто не запрещает комбинировать способы взаимодействия с базой. Нет единого рецепта. Все зависит от квалификации разработчиков и поставленных задач. Нужно писать на том, что хорошо знаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2015, 19:29 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
SergueiKimelпростые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Сложно давать советы не зная ваших задач. Никто не запрещает комбинировать способы взаимодействия с базой. Нет единого рецепта. Все зависит от квалификации разработчиков и поставленных задач. Нужно писать на том, что хорошо знаешь. К сожалению не могу привести всех задач, потому, что это неправильно, выйдет, что свою работу я перекладываю на сообщество. Прочитал десяток статей и вижу в основном 3 мнения: 1) вся логика обработки данных на промежуточном сервере обрабатывается каким-либо языком программирования 2) тоже самое только в БД 3) комбинирование У каждого свои аргументы, тут сложно выбирать. Я всё же склоняюсь к тому, что пусть сложные запросы выполняет бд, так как там это налажено оптимизатором запросов, статистикой, индексами и повторять тоже самое нет никакого смысла. Но и заниматься фанатизмом в виде реализации процедуры под каждый чих тоже не нужно. Этим может заняться orm. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2015, 20:03 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel, Если логика будет неизменной - делайте все на стороне БД. Иначе лепите в приложении. Комбинировать не советую - дороже выйдет переделывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2015, 23:01 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Злой БобрKimel, Если логика будет неизменной - делайте все на стороне БД. Иначе лепите в приложении. Комбинировать не советую - дороже выйдет переделывать. неизменная логика - это оксюморон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 00:33 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel, логика в Бд - решения тридцатилетней давности. Разве что какой нибудь аудит там внутри можно на триггерах делать. Поверьте мне как разработчику тоже своей erp (убийцо 1C :) ) - в таких проектах логика должна быть сосредоточена в одном месте, условно называемом сервером приложений. Вообще большинство энтерпрайз решений так и построены - БД это плоское хранилище для того чтобы быстро положить и взять данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 00:39 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelЯ занимаюсь разработкой небольшой erp под определенные нужды (не убийца 1С). Разработчик я не очень опытный поэтому хотел бы поинтересоваться у профессионалов: Стоит ли переносить большую часть логики связанной с БД в хранимые процедуры или лучше это обрабатывать в модели приложения? Бизнес логика состоит как из простых CRUD запросов, так и из сложных запросов, которые затрагивают одновременно большое количество таблиц. Как себе я представляю архитектуру: простые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Возможно я что-то забыл упомянуть, надеюсь вы меня поправите. РМД это сильно ограниченная модель. Поэтому были "придуманы" процедурные расширения (например TSQL, plsql), чтобы обойти ее ограничения. Выбирая перенос логики в БД вы привязываетесь к вендору СУБД. "Промежуточные" варианты не живучи, т.к. нужны специалисты которые хорошо знают и ЯП, и язык ХП конкретной СУБД. В конце, концов "остаться должен только один" и обычно это программист БД. Так что если остановитесь на БЛ в ХП, то сразу пишите REST-сервисы в БД. Лично я бы рекомендовал в СУБД хранить только данные. Причем без всяких ХП. Только голый SQL. А всю БЛ писать на удобном для вас ЯП. ORM так же бы не рекомендовал использовать (Точнее не пытатся ч\з ORM хранить объекты). Все равно придется писать слой, который будет перекладывать сущности в необходимые объекты. А хранение объектов в БД, приведет к тому, что придется писать ХП. И БЛ "размажется" м/у сервером приложений и БД. Что плохо скажется на сопровождаемости проекта. P.S. А так, решайте сами. Вы должны сами наступить на все грабли, чтобы понять, какие грабли для вас предпочтительнее. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 07:04 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
caballero, mad_nazgul, Я так понимаю, если я буду всю бд логику хранить в модели (включая взаимоотношения таблиц все эти каскадные удаления и прочее), то я всё равно столкнусь с тем, что допустим у меня уже сейчас в хранимой процедуре лежит запрос на 100 строк и не какой-то монстр в виде 50 джоинов, нет, нормальный запрос простые он с нарастающим итогом и другими плюшками. Я реализовал его с помощью процедурного языка (то есть сделал несколько элементарных селектов, а все остальные операции делала уже другая программа) и в виде запроса SQL и когда сравнил скорость выполнения то всё стало на свои места. Оптимизатор запросов в субд решает! И выходит, что даже если я буду подобные запросы хранить в модели в виде raw sql, то я всё равно получаю привязку к вендорам, так как нужно этот raw sql писать под каждую базу. Мне не понятно, как и где хранить сложные запросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 07:59 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimelcaballero, mad_nazgul, Я так понимаю, если я буду всю бд логику хранить в модели (включая взаимоотношения таблиц все эти каскадные удаления и прочее), то я всё равно столкнусь с тем, что допустим у меня уже сейчас в хранимой процедуре лежит запрос на 100 строк и не какой-то монстр в виде 50 джоинов, нет, нормальный запрос простые он с нарастающим итогом и другими плюшками. Для чего этот запрос? В обычном CRUD приложении это не нужно. Это либо нужно для "отчетов", либо для "аналитки". В первом случае лучше использовать построитель отчетов (для меня JasperReports). Во втором случае использовать OLAP (для меня Mordrian) KimelЯ реализовал его с помощью процедурного языка (то есть сделал несколько элементарных селектов, а все остальные операции делала уже другая программа) и в виде запроса SQL и когда сравнил скорость выполнения то всё стало на свои места. Оптимизатор запросов в субд решает! Если можно получить данные из SQL запроса, то лучше получить данные из SQL-запроса. Опять же повторю ХП-это костыль, т.к. РМД очень ограниченная модель. Можно использовать этот костыль, когда это оправдано. Но его использование лишает смысла "слоя-приложения". Т.е. проще будет сделать клиента (отображение), который будет напрямую работать с БД ч/з ХП. Так можно. Почему бы и нет. Но для меня не очень удобно. KimelИ выходит, что даже если я буду подобные запросы хранить в модели в виде raw sql, то я всё равно получаю привязку к вендорам, так как нужно этот raw sql писать под каждую базу. Зачем? Все современные SQL-БД как минимум поддерживают SQL-99. Более новые "фичи" надо смотреть по реализации. KimelМне не понятно, как и где хранить сложные запросы? Еще раз "сложные" запросы зависят от задачи. Обычно "сложные" запросы возникают либо, для "отчетов", либо для "аналитики". Для них есть специальные инструменты и фреймворки. P.S. Сделать свою "OLAP на коленке" можно, но не нужно, т.к. они уже сделаны :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 08:38 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Хорошо, я объясню зачем нужен этот запрос. Если кратко, то он реализует алгоритм FIFO то есть по количеству товара в заказе и позициям, ищет нужные партии с которых он спишет этот товар (само с собой на вход я ему даю весь заказ (например 150 позиций разных товаров, а на выход получаю >= 150 строк (потому, что если партия заканчиваться, то ищется следующая партия и так пока вся позиция не спишется))) которые нужно update . На процедурном языке реализация занимает намного больше строк чем на sql. То есть эта штука не отчет и не аналитика, а часть бизнес-логики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 08:54 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
caballeroПоверьте мне как разработчику тоже своей erp (убийцо 1C :) ) - в таких проектах логика должна быть сосредоточена в одном месте, условно называемом сервером приложений. Вообще большинство энтерпрайз решений так и построены - БД это плоское хранилище для того чтобы быстро положить и взять данные. Нет принципиальной разницы, логика на аппрервере или клиенте. Аппрервер это толстный клиент, кот. отдает записи тонкому клиенту. Глупо по сабжу ссылаться на энтерпрайз решения. Зачастую именно они - решения 30-й давности. "старики на стероидах" (с). Там логика вне сервсера - только ради кроссплатформенности и удлинения жизненного цикла. Тем более большинство энтерпрайза пришли еще с файл-сервера и в полной мере сохранили черты именно файл-сервера. Для обработки данных (парсинг картинок и тхт не обсуждаем) нет ничего лучше родного языка БД. Поэтому львиная доля б/л должна быть в БД, ИМХО. Правда жертвовать придется кроссплатформенностью. :( зы: как вспомню мегапортянки спагетти-кода C/AL или 1С - дурно становится. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 09:33 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
авторПравда жертвовать придется кроссплатформенностью Интересно, а "большой энтерпрайз" часто ездит между СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 09:41 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
xenixавторПравда жертвовать придется кроссплатформенностью Интересно, а "большой энтерпрайз" часто ездит между СУБД?За 30 лет много разных БД поменялось. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 10:11 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
xenixавторПравда жертвовать придется кроссплатформенностью Интересно, а "большой энтерпрайз" часто ездит между СУБД? Я думаю, он имел ввиду, что при разработке erp лучше не жертвовать кроссплатформенностью То есть если например я разрабатываю продукт для бизнеса, то было бы отлично, если мои клиенты (то есть бизнес) могли бы выбирать себе СУБД какую хотели. То есть дело не в переезжании, а в предоставлении выбора СУБД при разработке продукта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 10:12 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel,Я думаю, он имел ввиду, что при разработке erp лучше не жертвовать кроссплатформенностью Для небольших коллективов поддержание кратковременности по СУБД - банально дорого. И ненужно. Глубокое имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 10:43 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelЯ думаю, он имел ввиду, что при разработке erp лучше не жертвовать кроссплатформенностью То есть если например я разрабатываю продукт для бизнеса, то было бы отлично, если мои клиенты (то есть бизнес) могли бы выбирать себе СУБД какую хотели. То есть дело не в переезжании, а в предоставлении выбора СУБД при разработке продукта.Но предоставляя кросс/п. теряется оптимальность в работе с данными. Мягко говоря. Приведу простой пример на примере Навижена: Допустим Вам надо увеличить на единичку значение поля в тыще записей . Навижн делает (на толстом клиенте) : Ставит фильтр на таблицу (получить тыщу записей) Зачитывает первую строку по ключу. Увеличивает значение поля+1 и постит update-запрос. Перечитывает запись по ключу. Переходит на следующую запись... Трафик просто бешенный. Пример крайне примитивный, т.к. обычно нужно проделать подчитку еще с неск. таблиц (н-р отчет или обработка). Для миллиона записей процесс может затянуться на всю ночь. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 10:54 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
LSVKimelЯ думаю, он имел ввиду, что при разработке erp лучше не жертвовать кроссплатформенностью То есть если например я разрабатываю продукт для бизнеса, то было бы отлично, если мои клиенты (то есть бизнес) могли бы выбирать себе СУБД какую хотели. То есть дело не в переезжании, а в предоставлении выбора СУБД при разработке продукта.Но предоставляя кросс/п. теряется оптимальность в работе с данными. Мягко говоря. Приведу простой пример на примере Навижена: Допустим Вам надо увеличить на единичку значение поля в тыще записей . Навижн делает (на толстом клиенте) : Ставит фильтр на таблицу (получить тыщу записей) Зачитывает первую строку по ключу. Увеличивает значение поля+1 и постит update-запрос. Перечитывает запись по ключу. Переходит на следующую запись... Трафик просто бешенный. Пример крайне примитивный, т.к. обычно нужно проделать подчитку еще с неск. таблиц (н-р отчет или обработка). Для миллиона записей процесс может затянуться на всю ночь. :) Разве эту проблему куммулятивные запросы не решают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 11:03 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelРазве эту проблему куммулятивные запросы не решают?Что такое КЗ ? Сторонний запрос/ХП ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 11:34 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
LSV, Это когда запросы типа как вы сказали: авторЗачитывает первую строку по ключу. Увеличивает значение поля+1 и постит update-запрос. Перечитывает запись по ключу. Переходит на следующую запись... это накапливается в течении например 200мс, а потом идёт одним целым запросом, а не тысячей. Такое умеют делать многие orm, ну и postgre нативно такое делает (в конфиге настраиваться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 11:40 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
mad_nazgulОпять же повторю ХП-это костыль ХП - это средство расширения функциональных возможностей СУБД, вплоть до наличия в БД встроенного сервера приложений (PL/SQL-машина в Oracle), а костыль - у вас из головы торчит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 11:56 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Стоит ли переносить большую часть логики связанной с БД в хранимые процедуры или лучше это обрабатывать в модели приложения? Бизнес логика состоит как из простых CRUD запросов, так и из сложных запросов, которые затрагивают одновременно большое количество таблиц. Ну это вопрос очень сложный. От многого зависит. Например, от общей архитектуры системы. Взять 1С -- у неё есть внутренний язык, бизнеслогика на нём, и внутрь БД (в виде голых процедур) это всё не запихать в принципе. Также плохо переносить внутрь БД БЛ, если предусматривается несколько возможных к использованию СУБД. Можно привести также доводы за БЛ в БД: просто писать, мощный язык для программирования, данные близко -- повышается производительность за счёт того, что нет раундтрипов клиент-БД-клиент. Но минусы -- сложность взаимодействия из БД с другими компонентами системы (если они есть) - бд в таком случае должна быть финальным тупиковым пассивным компонентом системы, в неё можно войти потоком управления, а выйти уже нельзя -- только отдать результаты работы. Как себе я представляю архитектуру: простые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Скрещивать ORM с Бл в БД будет достаточно трудно из-за кэшей ORM-а. Они будут все время тебе мешать -- надо будет завершать транзакции только для того, чтобы данные попали в БД. Я бы делать такое не стал. Либо всё в БД, включая CRUD (его код можно и нужно сгенерировать), либо ORM и БЛ на среднем слое. Но я сам не пробовал так, возможно, не всё так плохо как мне кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:02 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelLSV, Это когда запросы типа как вы сказали: авторЗачитывает первую строку по ключу. Увеличивает значение поля+1 и постит update-запрос. Перечитывает запись по ключу. Переходит на следующую запись... это накапливается в течении например 200мс, а потом идёт одним целым запросом, а не тысячей. Такое умеют делать многие orm, ну и postgre нативно такое делает (в конфиге настраиваться)А в реале достаточно одного простого update. Без всей перечисленной лабуды. И трафик будет - меньше некуда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:04 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
caballeroKimel, логика в Бд - решения тридцатилетней давности. Разве что какой нибудь аудит там внутри можно на триггерах делать. Это досужие домыслы. Логика в БД -- это надёжно, просто и мощно. И как следствие гибко. Если весь мир ударился в моду многозвенок (что, кстати, вовсе не исключает логику в БД), это ещё не значит, что это хорошо. Завтра будет мода ходить без штанов -- мне прикажете тоже штаны снимать ? Нет уж. caballeroПоверьте мне как разработчику тоже своей erp (убийцо 1C :) ) - в таких проектах логика должна быть сосредоточена в одном месте, условно называемом сервером приложений. Вообще большинство энтерпрайз решений так и построены - БД это плоское хранилище для того чтобы быстро положить и взять данные. Это вызвано тем, что им необходимо использовать разные СУБД, а это практически однозначно требует переноса БЛ из БД. Но такое требование не всегда существует, можно радостно жить на одной СУБД, и горя не знать. Oracle, MSSQL или Postgres -- выбираешь одно из них, и живёшь с ним всю жизнь. Как жену выбирают раз и на всю жизнь. Но надо естественно тщательно выбирать. С логикой вне БД также много проблем. Это сложный, мелкий код, потому что язык как правило тупой и немощный, типа Java, либо необходимость писать и поддерживать свой высокоуровневый 4gl язык. Из сложного и громоздкого кода следует его большая сложность поддерки и как следствие негибкость всей системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:10 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
mad_nazgulKimelЯ занимаюсь разработкой небольшой erp под определенные нужды (не убийца 1С). Разработчик я не очень опытный поэтому хотел бы поинтересоваться у профессионалов: Стоит ли переносить большую часть логики связанной с БД в хранимые процедуры или лучше это обрабатывать в модели приложения? Бизнес логика состоит как из простых CRUD запросов, так и из сложных запросов, которые затрагивают одновременно большое количество таблиц. Как себе я представляю архитектуру: простые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Возможно я что-то забыл упомянуть, надеюсь вы меня поправите. РМД это сильно ограниченная модель. Поэтому были "придуманы" процедурные расширения (например TSQL, plsql), чтобы обойти ее ограничения. Выбирая перенос логики в БД вы привязываетесь к вендору СУБД. "Промежуточные" варианты не живучи, т.к. нужны специалисты которые хорошо знают и ЯП, и язык ХП конкретной СУБД. В конце, концов "остаться должен только один" и обычно это программист БД. Так что если остановитесь на БЛ в ХП, то сразу пишите REST-сервисы в БД. Лично я бы рекомендовал в СУБД хранить только данные. Причем без всяких ХП. Только голый SQL. А всю БЛ писать на удобном для вас ЯП. ORM так же бы не рекомендовал использовать (Точнее не пытатся ч\з ORM хранить объекты). Все равно придется писать слой, который будет перекладывать сущности в необходимые объекты. А хранение объектов в БД, приведет к тому, что придется писать ХП. И БЛ "размажется" м/у сервером приложений и БД. Что плохо скажется на сопровождаемости проекта. P.S. А так, решайте сами. Вы должны сами наступить на все грабли, чтобы понять, какие грабли для вас предпочтительнее. :-) Ну дальше тоже пошли фантазии на вольную тему. ТС, читай сквозь пальцы, думай сам... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:12 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelИ выходит, что даже если я буду подобные запросы хранить в модели в виде raw sql, то я всё равно получаю привязку к вендорам, так как нужно этот raw sql писать под каждую базу. Мне не понятно, как и где хранить сложные запросы? Ну решение хранить сложные запросы на среднем слое тоже вполне себе нормальное, ORM предоставляют возможности делать это в виде ресурсных файлов под каждую СУБД. Но я бы просто написал бы код на XXXSQL соотв. СУБД и клал бы его в скрипт инициализации БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:14 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimelmad_nazgul, Хорошо, я объясню зачем нужен этот запрос. Если кратко, то он реализует алгоритм FIFO то есть по количеству товара в заказе и позициям, ищет нужные партии с которых он спишет этот товар (само с собой на вход я ему даю весь заказ (например 150 позиций разных товаров, а на выход получаю >= 150 строк (потому, что если партия заканчиваться, то ищется следующая партия и так пока вся позиция не спишется))) которые нужно update . На процедурном языке реализация занимает намного больше строк чем на sql. IMHO если это можно сделать только с помощью SQL, без использования императивных расширений (типа plsql или tsql) То почему бы и нет. Т.е. данные спроектированы так, что данная задача хорошо ложится на РМД. Хотя алгоритм FIFO не плохо ложится в OLAP. Ну тут я могу ошибаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:16 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
mad_nazgulОпять же повторю ХП-это костыль, т.к. РМД очень ограниченная модель. Можно использовать этот костыль, когда это оправдано. Но его использование лишает смысла "слоя-приложения". Т.е. проще будет сделать клиента (отображение), который будет напрямую работать с БД ч/з ХП. Ыыы .. ну один бред за другим.... И РМД ему ограничена, и ХП это костыль, и костыли у него кривые... Может руки/ноги кривые, а не костыли ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:16 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Костыль хп-шныйmad_nazgulОпять же повторю ХП-это костыль ХП - это средство расширения функциональных возможностей СУБД, вплоть до наличия в БД встроенного сервера приложений (PL/SQL-машина в Oracle), а костыль - у вас из головы торчит... Кстати OEBS вполне себе крутая КИС, вся полностью на оракле и pl/sql написана. ничего, иногда даже SAP-ы всякие теснит с рынков. Пример как раз подхода "вся логика в БД". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:18 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
mad_nazgul IMHO если это можно сделать только с помощью SQL, без использования императивных расширений (типа plsql или tsql) То почему бы и нет. Т.е. данные спроектированы так, что данная задача хорошо ложится на РМД. Хотя алгоритм FIFO не плохо ложится в OLAP. Ну тут я могу ошибаться. FIFO и OLAP ? Нуну... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:20 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
dvimKimel,Я думаю, он имел ввиду, что при разработке erp лучше не жертвовать кроссплатформенностью Для небольших коллективов поддержание кратковременности по СУБД - банально дорого. И ненужно. Глубокое имхо. Ну, вполне себе правильное и обоснованное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:21 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
MasterZivЫыы .. ну один бред за другим.... И РМД ему ограничена, и ХП это костыль, и костыли у него кривые... Может руки/ноги кривые, а не костыли ? О "свидетели Oracle" подтянулись. :-) Реляционная модель данных ограничена, по определению. Т.к. это модель. У любой модели есть границы применимости. Т.е. не все можно выразить в РМД. Что такое SQL - это декларативный ЯП основанный на РМД. Т.е. мы говорим что хотим получить, а система нам выдает ответ. РМД это простая модель, поэтому SQL получился практичным, т.е. применимым на реальных задачах. Но т.к. не все можно представить в РМД, то были придуманы разные императивные расширения. У Oracle это plsql, у MS это TSQL и FoxPro (по правде говоря для FoxPro скорее наоборот в императивный ЯП xBase добавили немного "деклартивщины"). Так вот эти "расширения" костыли. Чтобы эти костыли работали, придумывают новые костыли. По поводу Oracle. Т.к. plsql это костыль, то по мере "роста запросов" у клиентов приходится к этому костылю добавлять кучу всякой фигни, которая может понадобится. Т.е. это стратегия bloatware. (С MS чуть получше, т.к. там все таки сразу был возможность разных DCOM и прочего, хотя туда все равно напихали всякого.) Поэтому для работы Oracle нужно еще куча сертифицированных специалистов, чтобы оно хоть как-то работало. Вообще Oracle - это мощный vendor lock. Где появляется БД Oracle, там, все БЛ перекочевывает в БД. Ничего плохого в этом не вижу. Oracle коммерческая организация, а не благотворительная :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:42 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
авторНо т.к. не все можно представить в РМД, то были придуманы разные императивные расширения. У Oracle это plsql, у MS это TSQL и FoxPro (по правде говоря для FoxPro скорее наоборот в императивный ЯП xBase добавили немного "деклартивщины"). Так вот эти "расширения" костыли. Чтобы эти костыли работали, придумывают новые костыли. Предлагаю спуститься с сияющих высот теории на землю практики и конкретно озвучить претензии к PL/SQL, T-SQL и прочим SPL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:57 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
По правде я не нацелен на кроссплатформенность между бд. Я уже выбрал в качестве бд Postgre так как она самая мощная и бесплатная. У меня был опыт использования mssql и это урок на всю жизнь - маздай зло, раньше не верил, но теперь всё ясно. Мой стек - linux+postgre+node.js (хотя можно linux заменить на windows, но какой в этом смысл, если windows в качестве сервера не даёт мне никаких преимуществ) Можно вместо orm использовать драйвер, это избавит меня от кэширования и объектной модели, но тогда к разработке моделей придётся подходить тщательнее и большинство БЛ будет на субд. Как вам такое: если большинство БЛ будет храниться в СУБД, то трафик между субд и сервером приложения снизится и их можно будет безболезненно географически разносить. Это лишь догадка, не знаю как оно будет на практике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 12:58 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
xenixПредлагаю спуститься с сияющих высот теории на землю практики и конкретно озвучить претензии к PL/SQL, T-SQL и прочим SPL Претензия только одна, что они "возвращают" меня ко временам FoxPro. Когда код превращался в спаггети из SQL вызовов и операторов циклов и условных переходов. Писать конечно удобно, но сопровождать... Так скажем ЯП общего назначения более удобные для программирования БЛ, чем PL/SQL и T-SQL. Это конечно все вкусовщина... :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 14:44 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelКак вам такое: если большинство БЛ будет храниться в СУБД, то трафик между субд и сервером приложения снизится и их можно будет безболезненно географически разносить. Это лишь догадка, не знаю как оно будет на практике. На практике для PostgreSQL это будет "боль и страдания". Возможности plpgsql очень скудны. К тому же с 9 версии у PostgreSQL ввели более строгую типизацию результирующего кортежа ничего не дав в замен. А так попробуйте. Будет опыт. ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 14:54 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel, однозначного ответа нет, так как orm не умеет писать эффективные сложные запросы, мало того можно моск сломать, пока заставишь ее запросить то, что тебе нужно - проще руками состряпать sql и отправить в orm на выполнение, получить dto, а потом как-нибудь подружить с orm-сущностями (кстати тоже не всегда возможно) варианты: 1. все делашеь через orm, сложные запросы разбиваешь на мелкие, которые сможет переварить orm в одной транзакции 2. если разбить не получается - комбинируешь, встает проблема дублирования бизнес-логики, решаешь по пути - например используется enum, его придеться складывать в базу, придумываешь как написать код и объяснить другим программистам, что ты тут накуралесил, и в каких местах еще надо править 3. если решишься все делать через ручной sql - orm выкидываешь нафик, лишний код, лишнее время разработки, так как все запросы всё равно будешь писать руками, но при разработке крупных систем, думаю проще сразу убится об стену 4. пишешь свою orm, которая будет уметь то, что тебе нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 14:54 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
авторРеляционная модель данных ограничена, по определению. Так любая модель ограничена, по определению. авторНо т.к. не все можно представить в РМД, то были придуманы разные императивные расширения. Это -- твои фантазии. SQL - декларативный язык, это правда. Т.е. не Тьюринг-полный, на нём нельзя писать программы. Вот чтобы было можно -- и придуманы императивные расширения. Это -- единственная причина их существования. РМД тут ни при чём. Далее идёт ещё более невообразимый бред, который даже комментировать не интересно. авторТак вот эти "расширения" костыли. Чтобы эти костыли работали, придумывают новые костыли. По поводу Oracle. Т.к. plsql это костыль, то по мере "роста запросов" у клиентов приходится к этому костылю добавлять кучу всякой фигни, которая может понадобится. Т.е. это стратегия bloatware. ... вроде бред закончился. авторВообще Oracle - это мощный vendor lock. Где появляется БД Oracle, там, все БЛ перекочевывает в БД. Любая СУБД -- это vendor lock. Увы. Будешь работать вообще без СУБД ? Придумаешь ещё более тяжёлый vendor lock -- на себя самого. С какой-то точки зрения это даже хорошо... авторНичего плохого в этом не вижу. Oracle коммерческая организация, а не благотворительная :-) А что ж писал тогда, раз ничего плохого не видишь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 14:54 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
xenixавторНо т.к. не все можно представить в РМД, то были придуманы разные императивные расширения. У Oracle это plsql, у MS это TSQL и FoxPro (по правде говоря для FoxPro скорее наоборот в императивный ЯП xBase добавили немного "деклартивщины"). Так вот эти "расширения" костыли. Чтобы эти костыли работали, придумывают новые костыли. Предлагаю спуститься с сияющих высот теории на землю практики и конкретно озвучить претензии к PL/SQL, T-SQL и прочим SPL Стоит ли тратить время и силы на это ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 14:55 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelПо правде я не нацелен на кроссплатформенность между бд. Я уже выбрал в качестве бд Postgre так как она самая мощная и бесплатная. У меня был опыт использования mssql и это урок на всю жизнь - маздай зло, раньше не верил, но теперь всё ясно. Зря, MSSQL -- замечательная СУБД, да и кроссплатформенность в мире СУБД фактически умерла, т.е. при условии, что MSSQL продаётся, кроссплатформенность ей не нужна. KimelКак вам такое: если большинство БЛ будет храниться в СУБД, то трафик между субд и сервером приложения снизится и их можно будет безболезненно географически разносить. это заблуждение. Трафик там будет всё равно космический. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 14:57 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
авторСтоит ли тратить время и силы на это ? Мне просто было всегда любопытно, откуда появились такие мысли. Грубо говоря (без уточнений и претензий), во времена младшего Дельфи и Визуал Бейсик 6 писали себе товарищи хранимые процедуры на сервере БД, дергали их из клиента и жили, а потом понеслось - появились Ява и прочий .НЕТ и начали на любой чих лепить "сервера приложений" и держать на них "бизнес-логику", которой прекрасно жилось и живется в БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 15:01 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel, что сможет orm: * одиночная CRUD операция * если у тебя несколько CRUD операций с несколькими таблицами - делаешь несколько обращение через orm, промежуточные результат сохраняешь в переменных, и все это оборачиваешь транзакцией что сможет orm, но будут проблемы: * сложная выборка данных в dto (допустим с колонкой количества, которое считается по какой-то другой таблице) + пейджинг + сортировка + фильтр на это дело одновременно * выборки данных для отчетов что orm не сможет: * специфические операции с данными, типа обработки иерархических таблиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 15:02 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
авторТак скажем ЯП общего назначения более удобные для программирования БЛ, чем PL/SQL и T-SQL.ппц. И чем же они удобнее ? Не представляю, как сделать сложный многоколоночный отчет-датасет, используя кучу мелких запросов и обычный ЯП. Точнее представляю этот дикий геморой. :) На языке БД это вполне компактный читабельный код, кот. может быть использован ЛЮБЫМ ПРИЛОЖЕНИЕМ. ХП будут работать с любым приложением ОДИНАКОВО. Б/Логика в приложении это привязка к конкретному приложению и технологии. Как получить сложный отчет-датасет в другом приложении (допустим есть такое требование) ? Никак. Только повторив в нем всю логику, кот. нужна в этом датасете. А это может быть просто эпическая мегажесть. А если таких датасетов 10-20-50 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 15:09 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
xenixавторСтоит ли тратить время и силы на это ? Мне просто было всегда любопытно, откуда появились такие мысли. Я тебе сказу в двух словах, съэкономлю твоё время, и может быть других: от невежества. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 15:09 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
17-77Kimel, что сможет orm: * одиночная CRUD операция * если у тебя несколько CRUD операций с несколькими таблицами - делаешь несколько обращение через orm, промежуточные результат сохраняешь в переменных, и все это оборачиваешь транзакцией Ещё ORM -- это ещё один хороший кэш данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 15:13 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
MasterZiv17-77Kimel, что сможет orm: * одиночная CRUD операция * если у тебя несколько CRUD операций с несколькими таблицами - делаешь несколько обращение через orm, промежуточные результат сохраняешь в переменных, и все это оборачиваешь транзакцией Ещё ORM -- это ещё один хороший кэш данных. Ээ, хороший ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 15:24 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
кроссплатформенность на практике означает отсутствие хорошей оптимизации под субд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 15:31 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Ivan Durakкроссплатформенность на практике означает отсутствие хорошей оптимизации под субд. не очень понятно с orm вообще не приходится говорить о хорошей оптимизации под субд а если пишешь хранимки - то внутри можно использовать специфичные вещи, главное иметь одниковую сигнатуру хранимок, чтобы код вызова для разных субд был одинаковый (точно могу сказать за ms sql и oracle - я так делал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 15:39 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
MasterZivЕщё ORM -- это ещё один хороший кэш данных. мне он не нравится: * в веб-приложениях/веб-службах с моделью "на запрос" (я с такими имел дело) - кеш не используется * приходиться дописывать костыли для юнит-тестов, например EF любит падать с ошибкой - сущность с таким entity key уже существует именно для юнит тестов при определенных условиях, хотя в реальном приложенгии все работает ништяк * если делаешь масштабируемую систему с параллельной обработкой данных - тоже вопрос как этот кеш себя будет вести, я лучше его либо ограничу его в рамках одного потока, либо уберу совсем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 15:50 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Помню в навике "написал" отчет (про "писание" отчетов там - это отдельная песТня). Запустил - 30 минут. Отчет - реально простой. Задумался. Переписал в лоб на SQL (не думая ни о индексах, ни о хинтах и др.оптимизации) с выводом в Excel - 15 секунд. Разница - два порядка . Но, проблемы. Для того, что бы так сделать надо 1) знать SQL 2) знать схему данных в БД (и иметь к ним доступ, но здесь не об этом). Последнее КМК труднее, чем первое. Работая с навиком или с 1С мы, волей-неволей, бизнес-пользователь (пусть он даже программист C-AL или 1С) думаем в терминах созданной бизнес-модели ("сущности", "объекты-документы", "справочники" и т.п.), но здесь надо знать, как эта модель соотносится с таблицами. В навике это еще более-менее прозрачно (хотя и там есть некоторые непонятки), а в 1С я, помню, увидел названия таблиц типа "Справочник#001" и совсем загрустил, хотя SQL вроде бы знаю. Вообще, если думать глобально, то КМК закономерности и алгоритмы, используемые в предметной области есть такие же данные о ней, как и значения, описывающие ее состояние.Например в 1С, модель целиком возникает и существует в апп.сервере. (данные именно там встерчаются с бизнес-логикой). Апп.сервер реализуем метафору персистентной модели, пытаясь скрыть низлежашее взамиодейтсве с СУБД. Пользователь реализует логику в терминах такой персистентной сложной модель, ему в этом плане легко, только ждать долго, ибо по факту данные хранятся в другом месте. Вплоть до того, что тормоза и локи могут возникнуть при загрузке "конфигурации", т.е. описания модели и бизнес логики. А, реализуя логику на стороне сервера в терминах таблиц, мы, по факту создает в этих терминах бизнес-модель (она же - схема данных). К сожалению, существующие реализации РМД дают только такие термины, что, чаще всего, очень неудобно. Поэтому КМК универсального ответа на вопрос нет. Если речь идет о простой модели близкой к схеме БД, то бизнес-логика на сервере - легко. Если что-то особенное, замороченное, да еще криво и невнятно отображенное в таблицы - будет сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 16:16 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
LSVавторТак скажем ЯП общего назначения более удобные для программирования БЛ, чем PL/SQL и T-SQL.ппц. И чем же они удобнее ? Не представляю, как сделать сложный многоколоночный отчет-датасет, используя кучу мелких запросов и обычный ЯП. Точнее представляю этот дикий геморой. :) На языке БД это вполне компактный читабельный код, кот. может быть использован ЛЮБЫМ ПРИЛОЖЕНИЕМ. ХП будут работать с любым приложением ОДИНАКОВО. Б/Логика в приложении это привязка к конкретному приложению и технологии. Как получить сложный отчет-датасет в другом приложении (допустим есть такое требование) ? Никак. Только повторив в нем всю логику, кот. нужна в этом датасете. А это может быть просто эпическая мегажесть. А если таких датасетов 10-20-50 ? эпическая мегажесть - это настолько кривое проектирование что выборка требует десятков датасетов, чтобы вы под этим термином не подразумевали. нет никаких проблем с получением сложных отчетов без логики в ХП. И нет никаких проблем сделать несколько простых запросов. Еще раз - именно так работает весь ентерпрайз. Бизнес логика на сервере приложений и множество простых линейных запросов к БД, большинство из которых генерятся автоматически. Так работают J2EE сервера, так работают современные решения на .NET с помощью Entity Framework. Только мастера наколенных поделок на Делфи (при всем уважении к этому продукту) до сих пор ваяют логику в БД. . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 16:25 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Еще раз - именно так работает весь ентерпрайз. Бизнес логика на сервере приложений и множество простых линейных запросов к БД, большинство из которых генерятся автоматически . Так работают J2EE сервера, так работают современные решения на .NET с помощью Entity Framework.Так работает 1С, Динамиксы, САП и прочая ентерпрайз-кривизна, берущая начало с 80-хх годов. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 16:40 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
caballero[ Еще раз - именно так работает весь ентерпрайз. Бизнес логика на сервере приложений и множество простых линейных запросов к БД, большинство из которых генерятся автоматически. Вы видимо ни в одном банке никогда не работали. А весь банковский серьезный ентерпрайз обслуживающий опердень, карточный процессинг или crm работает как раз с логикой в субд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 17:09 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
caballero ... Еще раз - именно так работает весь ентерпрайз. ... . КМК не аргумент, скорее пример инерции, сейчас не нужной. Например, тот же навик до определенного момента имел собственное какбэ табличное хранилище, потом туда параллельно прикрутили возможность работать с MS SQL на уровне "взять" и "положить" строку, даже ограничение целостности вне СУБД контролируются (причем местами - плохо). Какая уж там бизнес-логика на сервере?. Потом вроде бы от собственного хранилища отказались, но ущербная архитектура от тех времен осталась полностью. Хотя, вообще, бизнес-термины, предлагаемые навиком, очень неплохо ложатся на таблицы. Или САП, у него архитектура идет из таких лохматых 70-х годов, когда SQL-я еще толком не было, не говоря уже про его процедурные расширения. Аналогичная история со многими. 1С. Или была такая система турбобухгалтер. 1 в 1 случай с навиком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 18:10 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Ivan Durakcaballero[ Еще раз - именно так работает весь ентерпрайз. Бизнес логика на сервере приложений и множество простых линейных запросов к БД, большинство из которых генерятся автоматически. Вы видимо ни в одном банке никогда не работали. А весь банковский серьезный ентерпрайз обслуживающий опердень, карточный процессинг или crm работает как раз с логикой в субд. чушь. Разве что в банке стоит самопал разработанный командой програмистов этого же банка и без сапорта этой командой недееспособный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 20:54 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
LSVЕще раз - именно так работает весь ентерпрайз. Бизнес логика на сервере приложений и множество простых линейных запросов к БД, большинство из которых генерятся автоматически . Так работают J2EE сервера, так работают современные решения на .NET с помощью Entity Framework.Так работает 1С, Динамиксы, САП и прочая ентерпрайз-кривизна, берущая начало с 80-хх годов. :) угу, а еще Oracle Application, WebSphere, WebLogic... напишите хоть что то близко лежащее к этим продуктам тогда будете говорить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 20:58 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Что мне не нравиться в 1с кроме ценовой политики и шиндоуса? Медлительность, требовательность к железу, отсутствие нормальной удалённой работы. Я хотел бы избежать этого в своей erp. Во-первых никаких толстых/тонких/тоненьких/голубеньких клиентов. Только браузер и всё. Приложения на react ни чем не будет уступать нативному, а взамен я получу отвязку от ОС на клиенте. Во-вторых скорость. node.js асинхронный, пока база будет обрабатывать запрос, цикл событий node.js идёт дальше пока Бд не вернёт запрос. Это несколько увеличивает работу в многопользовательском режиме. В-третьих так как это веб-приложение, то оно изначально заточено под удалённую работу. В 4-х свой ЯП. Это вообще какой-то nighmare. Даже обсуждать нечего. Даже JS будет получше чем 1C ЯП. В 5-х проприетарщина должна умереть. Только open source. Если вы знаете, каких-то фундаментальные ошибки допущенные разрабами 1с, то буду очень рад их услышать (пока сам их не повторил). Это не совсем оффтоп, так как интересуют ошибки по части работы с БД. Вопрос простой: что на 100% точно не нужно повторять за 1с? (Я не делаю убийцу 1с и даже не буду пытаться, у меня другие цели.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 21:06 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
U-gene, тем не менее все вышеперечисленное занимает 99% рынка приложений уровня предприятия. Хотите современных систем? Ну так поизучайте всякие Busines Intellicence и Data Mining и подумайте как вы там будете накручивать на ХП математические алгоритмы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 21:07 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel Во-первых никаких толстых/тонких/тоненьких/голубеньких клиентов. Только браузер и всё. Kimel Приложения на react ни чем не будет уступать нативному, а взамен я получу отвязку от ОС на клиенте. в браузере и так еее получите а применеие всякой экзотики не даст нормально работать мобильным устройствам. А нафиг нужна такая erp если нельзя ввести накладную с по=ланшета. Kimel Во-вторых скорость. node.js асинхронный, пока база будет обрабатывать запрос, цикл событий node.js идёт дальше пока Бд не вернёт запрос. Это несколько увеличивает работу в многопользовательском режиме. не имеет смысла - это erp а не социальная сеть - ему не надо никуда дальше идти. а разработка асинхронных прогам гораздо более трудоемкая, особенно систем класса ERP уж поверте человеку, который допиливает проект по складской логистике на Flex за командой любителей асинхронки которую заказчик послал куда подальше. Kimel В 4-х свой ЯП. Это вообще какой-то nighmare. Даже обсуждать нечего. Даже JS будет получше чем 1C ЯП. в 1С как раз "свой". не надо ничего своего. Лично меня вполне устраивает PHP. Плюс HTML с несложным шаблонизатором идеален для отчетов и печатных форм документов. Kimel В 5-х проприетарщина должна умереть. Только open source. таки да. Kimel Если вы знаете, каких-то фундаментальные ошибки допущенные разрабами 1с, то буду очень рад их услышать (пока сам их не повторил). не повторите даже если не будете о них знать. Kimel Это не совсем оффтоп, так как интересуют ошибки по части работы с БД. Вопрос простой: что на 100% точно не нужно повторять за 1с? если опен сорс то уже точно не оракл и не mssql - а значит бизнес логика в БД отпадает автоматически. Kimel (Я не делаю убийцу 1с и даже не буду пытаться, у меня другие цели.) ну так сформулируйте их - сложно давать советы человеку цель которого не ясна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 21:21 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
caballero, авторв 1С как раз "свой". не надо ничего своего. Я как раз имел ввиду, что "свои" яп это nightmare. Лучше пользоваться тем, что есть. Тем более JS ECMA6 и JSX (короче js последних стандартов) превращает js в неких php только асинхронный. автор в браузере и так еее получите а применеие всякой экзотики не даст нормально работать мобильным устройствам. А нафиг нужна такая erp если нельзя ввести накладную с по=ланшета. react это не экзотика. Это логическая эволюция разработки для web. По сути это в терминах MVC это V. Но обычно react используют с flux, а не MVC и в итоге ты получаешь у себя в браузере изоморфное одностраничное приложение. Но это на самом деле не важно. Работать это будет и на планшете и на мобильнике и на linux. Но я честно говоря не ориентируюсь на мобильные платформы. авторне имеет смысла - это erp а не социальная сеть - ему не надо никуда дальше идти. а разработка асинхронных прогам гораздо более трудоемкая, особенно систем класса ERP уж поверте человеку, который допиливает проект по складской логистике на Flex за командой любителей асинхронки которую заказчик послал куда подальше. Вы имеете ввиду, что асинхроные плюшки подходят только для высоконагруженных проектов? Что ж я соглашусь частично. Node.js очень плохо кушает вычислительные операции (вроде каких-то интерпрайз формул). Но взамен я получаю возможность использовать многопользовательский режим даже если сервер на слабом железе, что для меня один из приоритетов. По сути цель: создать многопользовательское erp для среднего бизнеса, бесплатное, открытое и благодаря самой модульной природе node.js ещё и расширяемое. По сути если положить всё сложную вычислительную работу на СУБД, то я разгружу событийный цикл ноды и она будет просто летать. Чего я точно не стану реализовывать: бухгалтерскую систему двойной записи, проводки, счета и прочее. Зачем это делать, если всё уже есть в 1с? Не проще ли использовать у себя на предприятии изолированную 1с, которую будут только кормить первичными документами. Что я точно буду делать: поскольку аудитория этой программы будут в основном менеджеры, то к erp будет прилагаться crm. То есть работа с клиентами, простые учётные операции по складам, простая логистика. Всё как можно проще, не уровня интерпрайз. Кому что-то нужно дописать, открыл исходный код и в перёд. Это даже не сколько коробочный продукт, столько framework будет. Базовую функции будут только ради примера. Лично я не могу работать с 1с, мне настолько тошнит от 1с как от платформы, ну всё ужасно. Хочется, чего-то легкого для железа, расширяемого, бесплатного. Мне не приятно работать с монстром в котором не каждый бухгалтер разбирается, а потом несчастные руководители пытаются натянуть свою бизнес-логику на существующие конфигурации. Я не люблю windows server и windows как ос. Ведь очень просто установить какой нибудь Linux Mint для сотрудника и он с браузером (той же лисой) будет спокойно работать. В итоге для среднего и малого бизнеса это самое то. Никаких плат за лицензии для каждого клиента. Достаточно иметь один 1с на всю фирму, и в него будут сливаться данные с внешней erp, а он будет работать как система налоговых/бухгалтерских отчетов. В итоге мы имеем легкий erp-crm который нуждается только в доработке напильником и при этом возможно это сэкономит много средств. Я лично делаю это для знакомых, они будут тестировать это у себя. Потом на других протестирую и так пока не отточу, то широкой публике не выставлю. Опять же это будет framework и несколько модулей в комплекте. Нет цели объять необъятное. авторне повторите даже если не будете о них знать. не совсем понимаю, что вы имели ввиду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2015, 21:51 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel, не очень понятно зачем вы вцепились в асинхронный режим. в программах типа ERP он никаким каком не разгружает железо, как и подавляющем числе других сайтов. Польза ноды только для сайтов с снодженством мелких запросов (типа сообщния в соцсетях) которые как раз обрабатываются в одном потоке без всякой параллельности - в этом и был изначальный смысл такого решения. не распаралеливание а как раз наоборот. Все что там навернули потом это от лукавого. Впрочем при нынешних ценах на железо подобные вопросы - экономия на спичках. то же касается react - разработка одностраничных приложений гораздо более трудоемкая причем реального смысла в этом нет - пользователю начхать как оно там сделано. А вот на что не начхать будет так это на мобильныей платформы. Кроме того нет смысла в опенсорсе если с этим никто не будет разбираться - серьезно думаете что кто то станет изучать ноду и некий реакт чтобы работать с вашей програмой? Даже исходники смотреть не станут. Расказы фанатов ноды и реакта о том что это типа эволюция не более чем бла-бла-бла. Сегодня гугл пиарит ноду а завтра забьет и станет пиарить что то новое, ненадёванное. Впрочем с таким странным подходом вы вряд ли что то сделаете - поверьте в реализации подобных программ вопросы железа и асинхронности даже не на десятом плане. И кстати ERP немыслима без учетной системы -что можно планировать если нет учета и регистрации хозяйственных операций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 00:12 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
caballero, Ясно, но я попробую. Возможно и учётную систему реализую. Вот вам может кажется, что всё это какая-то новомодная хреновина, но лично я вижу совсем другое. Я вижу возможности, которые эта хрень даёт и я не вижу ни одного аналога, ни одного даже близкого аналога. Вот так вот. Более кроссплатформенного клиента чем веб-апп+ бразуер я не нашёл. Более дешёвого, открытого, модульно (причём нативная модульность). Гибкость языка js и всё это в совокупности выглядит более привлекательно чем программирование на 1с или написания очередного мего-интерпрайза на яве. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 00:25 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
давай, пиши исчо, грузи СУБД вычислениями :), ноде какого то асинхронными (ЧЕМ???), виндовс нафиг,..., но только ты сначала хоть что то написанного покажи, а то будешь не будешь - кто знает? всегда удивляет кодеры, которые пытаются улучшить жисть бизнесменам :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 00:28 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
ViPRosдавай, пиши исчо, грузи СУБД вычислениями :), ноде какого то асинхронными (ЧЕМ???), виндовс нафиг,..., но только ты сначала хоть что то написанного покажи, а то будешь не будешь - кто знает? всегда удивляет кодеры, которые пытаются улучшить жисть бизнесменам :) Я рад, что вы уловили меседж) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 00:29 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel, пора уже а то бизнесмены уже на ладан дышат, бедные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 00:35 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
ViPRosKimel, пора уже а то бизнесмены уже на ладан дышат, бедные может быть прекратите пыхтеть от того, что какой-то ноунейм решил (о боги) создать свою маленькую erp для небольшой прослойки среднего бизнеса? Давайте, расскажите мне, что я и строчки никогда не писал и с бизнесменами не имел дела, очень интересно, вы наверное так много знаете обо мне. Наверное, я 3 статьи на хабре прочитал и уже хочу покорить рынок, которому нужен новый герой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 00:42 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
caballeroU-gene, тем не менее все вышеперечисленное занимает 99% рынка приложений уровня предприятия. Хотите современных систем? Ну так поизучайте всякие Busines Intellicence и Data Mining и подумайте как вы там будете накручивать на ХП математические алгоритмы 1) А чё, 99% рынка - это сплошь BI и DM? Лихо Вы смешали мух с котлетами задачи, архитектуры под них и сегменты рынка. КМК 99 % рынка занимает голимые 1С, навик и прочие сапы, про архитектуру которых я писал. Кстати, какой рынок то считаем? Вы не написали, я тоже ;) 2) А чё, бизнес логика - это сплошь BI и DM? И снова Вы лихо смешиваете мух с котлетами задачи, архитектуры под них и сегменты рынка. По мне BI к бизнес-логике относится несколько опосредованно. Например "в конце квартала построить отчёт", или "если показатель достиг уровня, то выполнить действие" и т.п. Целиком эти фразы есть бизнес-логика, а отдельно "отчет" и "показатель" - это BI. Бизнес-логика без BI - легко. В том же 1С или в навике, BI находится на зачаточном уровне (а чаще вообще не используется, даже на таком уровне), но бизнес-логики там навалом. Слабый аргумент.caballero, как аргумент за вынос логики, не прокатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 00:53 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel, Я честно говоря не очень понимаю, КМК у Вас местами каша в намерениях. Вы с одной стороны говорите про фреймворк, с другой стороны, например, отказываетесь от "бухгалтерии" и "двойной записи". Если фрейморк хороший, то он КМК любую более-менее часто используемуй структуру должен уметь реализовывать и использовать. Образно говоря, Вы инфологию с даталогией путаете. В том же 1С реализован набор примитивов. Назовут один примитив "журналом проводок", получится бухгалтерия, но это же примитив (ежели потребуется) и по другому назвать можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 01:12 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
U-geneKimel, Я честно говоря не очень понимаю, КМК у Вас местами каша в намерениях. Вы с одной стороны говорите про фреймворк, с другой стороны, например, отказываетесь от "бухгалтерии" и "двойной записи". Если фрейморк хороший, то он КМК любую более-менее часто используемуй структуру должен уметь реализовывать и использовать. Образно говоря, Вы инфологию с даталогией путаете. В том же 1С реализован набор примитивов. Назовут один примитив "журналом проводок", получится бухгалтерия, но это же примитив (ежели потребуется) и по другому назвать можно. Вы определённо правы. Я ещё не разобрался до конца. Мне с одной стороны крайне не хочется делать аналог 1с с дургой стороны вести учёт без проводок как-то странно звучит. Просто система проводок потянет за собой кучу счетов и логику между ними, всё это сложно и нужно бухгалтерам. А менеджерам и управляющим нужна информация и инструменты другого характера и я больше на них ориентируюсь. Я плотно общаюсь с разными руководителями и пришёл к выводу, что 1с это далеко не идеал, есть куда двигаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 01:20 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelViPRosKimel, пора уже а то бизнесмены уже на ладан дышат, бедные может быть прекратите пыхтеть от того, что какой-то ноунейм решил (о боги) создать свою маленькую erp для небольшой прослойки среднего бизнеса? Давайте, расскажите мне, что я и строчки никогда не писал и с бизнесменами не имел дела, очень интересно, вы наверное так много знаете обо мне. Наверное, я 3 статьи на хабре прочитал и уже хочу покорить рынок, которому нужен новый герой? ну, РЕШИЛ - никого не волнует волнует - СДЕЛАЛ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 01:25 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
ViPRos, если вас не волнует, то зачем вы тогда общаетесь со мной? Или у вас принцип : "сначала добейся,а потом осуждай?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 01:28 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Слишком много эмоций, а у ViPRosа есть своя ERP - вот он и завидует, что конкурент возможный на горизонте замаячил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 01:30 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Axeleron, вот вот сразу начал пугать какими то непонятными словами но, все ж не так он страшен, в бухгалтерии не силен, да и кроме 1с, кажется ничего пока не видел предлагаю ему написать тут, я вот в свое время писал тут ВИПРОС и с народом советовался :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 01:45 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelViPRos, если вас не волнует, то зачем вы тогда общаетесь со мной? Или у вас принцип : "сначала добейся,а потом осуждай?" ты давай начинай, я наоборот, всем начинающим поддержку моральную оказываю просто рассчитывай правильно все - 10 000 клиентов не будет однозначно, так 10 000 * 10 000 доход - это утопию а вот 10 можно найти, так что сделай так, что бы цена начиналась с 10 000 000, ну с 3 000 000 хотя бы а то блин ни машину нормальную, ни квартиру нифига не увидишь :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 01:48 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
ViPRos, у меня высшее образование по бухгалтерскому учёту (для справки) и с 1с я работал ещё с 1-го курса. Вы явно пытаетесь как-то унизить моё достоинство. Ударить в грязь так сказать. Сказать, что я вооще ничего не знаю и не умею, как будто я ребёнок. А вы не думали, что это слишком дешевый трюк чтобы заработать себе репутацию и действительно "знающие" люди не пытаются кого-то унизить перед сообществом, чтобы доказать своё превосходство? Надеюсь все кто это читаю сделают соответствующие выводы по поводу личности этого выскочки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 01:50 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel, ладно, молчу, виноват - может и будет новые васюки (не знал что у бухгалтеров высшее образование) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 02:15 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelВы определённо правы. Я ещё не разобрался до конца. Мне с одной стороны крайне не хочется делать аналог 1с с дургой стороны вести учёт без проводок как-то странно звучит. Просто система проводок потянет за собой кучу счетов и логику между ними, всё это сложно и нужно бухгалтерам. А менеджерам и управляющим нужна информация и инструменты другого характера и я больше на них ориентируюсь. Я плотно общаюсь с разными руководителями и пришёл к выводу, что 1с это далеко не идеал, есть куда двигаться. 1C как раз почти идеал, которая с одной стороны может учитывать "особенности национальной бухгалтерии" с другой не сильно требовательна к компетенции как программиста, так и бухгалтера (т.е. порог вхождения туда, и туда очень низок). Почему все ругают и плюются на 1С. Потому что она как универсал, все делает одинаково плохо. Из опыта автоматизации "менеджеров" я понял, что для них идеальный инструмент это Word, Excel и Outlook. Три эти программы покрывают почти все потребности менеджера по работе. Если к ним еще добавить "систему контроля версий", то покроются все потребности менеджера. <:o) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 06:25 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Можете по подробней по систему контроля версий? Вы имеете ввиду, что допустим накладная будет храить все свои версий на протяжении жизни, чтобы можно было посмотреть как было и как стало? Или что? Я просто понимаю, что 1с как инструмент для продаж Довольно примитивный. Разве что если нужно только накладные набивать (но как выше вы упамянули excel тоже это умеет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 09:11 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Дорогой, Kimel. Вы не готовы к созданию ни убийцы, ни жертвы. Пока. Потому что, в первую очередь, не изучили богатый учебный материал по теме, которого даже здесь в избытке. ViPRos самый добродушный здесь человек, с огромным опытом: положительным в техническом плане, и отрицательным - в научном. В его распоряжении не было системы управления базами данных, когда он начал создавать свой продукт. Прошло много лет, и Вы хотите начать делать то же самое с той же фундаментальной проблемой - отсутствием системы управления базами данных. Я уже в тысячный раз обращаюсь к модераторам - переименуйте раздел в "Проектирование реляционных баз данных". Потому что, подавляющее большинство проблем, которые здесь обсуждаются, связаны с РМД. Почитайте, Kimel, сначала несколько тем по этому вопросу. Например, вот здесь http://www.sql.ru/forum/973198-1/db-specific-orm?hl=orm и ViPRos активно участвовал, и Вы сможете более детально понять и его подходы. И сформулируйте какую-то более высокую для себя цель (цели должны быть высокие, как меня учили преподаватели))). Например, исключительно тачскриновский интерфейс Вашей жертвы (к которому все уже привыкли в быту и на улицах) или что-то в этом роде).. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 09:29 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Бредятина, звидую твоей силе воли: продержаться до 4-й страницы со своими теориями - это надо уметь. авторЯ просто понимаю, что 1с как инструмент для продаж Довольно примитивный и чего же в нем не хватает? (я без подначек - просто для повышения уровня образованности) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 09:37 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
офф: Обана ! В "Кащенко" день открытых дверей... ЧАЛа выпустили... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 09:46 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Бредятина, Хорошо, прочитаю, спасибо. Я не брезгую учиться. авторПрошло много лет, и Вы хотите начать делать то же самое с той же фундаментальной проблемой - отсутствием системы управления базами данных. Честно говоря не понимаю с чего вы это взяли? Я уже разработал большую часть структуры таблиц базы данных и ключей между ними (я до этого имел с похожими на 1с продуктами и приходилось вручную создавать бд), просто встал вопрос где хранить логику, с этого и начала эта дискуссия. xenix, не хватает некоторых smart штучек. Не хочу их перечислять, так как смысла в этом особого для меня нет. Вот одна из: Вычисление потенциальной прибыли от заказа на лету (так как в 1с себестоимость в принципе не может быть посчитана на лету, то есть до проводки). Я не говорю, что это невозможно реализовать. Просто в коробочных версиях (на которых подавляющее большинство сидит) этого нет. А дорабатывать подобные штуки дело не благое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 09:54 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelБредятина, Честно говоря не понимаю с чего вы это взяли? Я уже разработал большую часть структуры таблиц базы данных и ключей между ними (я до этого имел с похожими на 1с продуктами и приходилось вручную создавать бд), просто встал вопрос где хранить логику, с этого и начала эта дискуссия. Именно не понимаете. Но, обязательно поймете. Вопрос МД важнее вопроса про логику, в этом все дело. KimelВычисление потенциальной прибыли от заказа на лету (так как в 1с себестоимость в принципе не может быть посчитана на лету, то есть до проводки). Кстати, о проводках и БУ в целом. Счета и проводки реализуются в "учетной системе" (в которой учитываются операции) буквально за 1 ч-ч. Здесь тоже было несколько тем по этому вопросу. Проводки вообще не нужны, как отдельная сущность. Так что, Вы правы, возможно, в отношении "изолированной 1с", но граница взаимодействия и цель другие - не бухгалтерский учет, а бухгалтерская отчетность)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 10:10 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
авторне бухгалтерский учет, а бухгалтерская отчетность Как я давно об этом мечтал - увидеть отчет без учета ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 10:36 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimelmad_nazgul, Можете по подробней по систему контроля версий? Вы имеете ввиду, что допустим накладная будет храить все свои версий на протяжении жизни, чтобы можно было посмотреть как было и как стало? Или что? Накладная, она и в Африке накладна. Это один документ с подписью и печатью. Я имею ввиду, например, такую вещь как бюджетирование. Т.е. когда менеджеру надо работать как минимум с двумя-тремя версиями бюджета. Потом после утверждения, еще отслеживать "план-факт". Потом внесений дополнений и изменений в бюджет. Работа "творческая" в общем случае не формализуемая. Excel как раз идеальный инструмент. Или продажник должен иметь несколько версий прайса, в зависимости от погоды на Марсе. В общем система контроля версий, которая могла бы работать с Word и Excel. Была простой и удобной для любого среднестатистического менеджера. А так обычно используется файл помойка с названием по датам. :-) KimelЯ просто понимаю, что 1с как инструмент для продаж Довольно примитивный. Разве что если нужно только накладные набивать (но как выше вы упамянули excel тоже это умеет) Ну я бы не сказал, что 1С совсем уж примитивный инструмент. Хотя её "универсальность" удобства в работе не добавляет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 11:24 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
xenixавторне бухгалтерский учет, а бухгалтерская отчетность Как я давно об этом мечтал - увидеть отчет без учета Непонимание (из-за цитирования отдельных слов) - это проблема того, кто читает, а не того, кто пишет)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 11:46 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Kimel, Если Вы знаете предметную область, но опыта в программировании мало (сужу по тому, что Вы не знаете что означает 'контроль версий'), то лучше не затевайте это все или наймите профессионала. Для начинающего программиста эта задача не по силам. У вас для решения одной проблемы в лучшем случае будет 1 вариант ее решения. В лучшем! А этого совсем недостаточно. Только человек с солдиным опытом, может все проанализировать и предложить несколько вариантов решения проблемы, расписав все за и против каждого из возможных решений. Добрый мой Вам совет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 12:12 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
KimelКак себе я представляю архитектуру: простые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Если бы все запросы сводились к "простым" и "сложным", то пожалуй лучше архитектуры и не придумать. Есть однако ряд бизнес-алгоритмов, которые одинаково "неудобно" реализовывать как на чистом SQL, так и на процедурном ЯП. Например распределение инвойса по заказам. В этом алгоритме сочетается построчная обработка "входящей таблицы-инвойса" (процедурный подход) с контекстными SQL-запросами к базе заказов. На подобных "пограничных" случаях может сломаться любая "безупречно задуманная" архитектура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 12:16 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
AxeleronKimel, Если Вы знаете предметную область, но опыта в программировании мало (сужу по тому, что Вы не знаете что означает 'контроль версий'), то лучше не затевайте это все или наймите профессионала. Для начинающего программиста эта задача не по силам. У вас для решения одной проблемы в лучшем случае будет 1 вариант ее решения. В лучшем! А этого совсем недостаточно. Только человек с солдиным опытом, может все проанализировать и предложить несколько вариантов решения проблемы, расписав все за и против каждого из возможных решений. Добрый мой Вам совет. Я знаю, что такое контроль версий, в том контексте имелся ввиду другой контроль версий, я лишь уточнял. Я оценил свои силы и готов написать сам. С чего вы взяли, что на решения проблем у меня будет 1 вариант в лучшем случае. По моему это относиться только к умственно отсталым, у меня есть интеллект, я способен искать множество путей и выбирать лучший. Вот сейчас к примеру я оценивал как хранить логику. Понял из этого много. Даже крутые интерпрайз программисты были неопытными и брались за то, что им "не по силам". Так они и стали великими, преодолевая "непроходимые" препятствия. Там где другие останавливаются надо идти дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 12:24 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
UridianKimelпростые CRUD запросы хранятся в модели, ими занимается orm, так как это очень просто. сложные запросы в хранимых процедурах БД, которые orm будет вызывать. Например распределение инвойса по заказам. В этом алгоритме сочетается построчная обработка "входящей таблицы-инвойса" (процедурный подход) с контекстными SQL-запросами к базе заказов. Сочетаться то они сочетаются, но зачем их вообще так разделять? КМК в целом это случай сложной бизнес логики, который должен быть реализован на сервере. КМК Kimel неправильный термин использовал, он имел в виду не сложный запрос, а наоборот, простой запрос, вызывающий в БД сложную логику. Да и само деление "простая логика", "сложная логика" КМК ущербно. Например, есть значение А которое вычисляется очень просто. Есть сложная процедура В, которая использует значение A. Получается, что A всяко должно вычисляться там же, где работает B. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 12:56 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Проблема в том, что разработку систем поручают программистам. Поэтому обработку данных с помощью средств БД заменяют программированием: select --> for Реализация БЛ в ХР делает БД одновременно и системой хранения данных и сервером приложений. Преимущества здесь уже описаны. Ничто не мешает, как указал MasterZiv, генерировать ХР в процессе установки системы под конкретную БД. При этом приложение и не будет знать с какой БД оно работает. Это разовая операция, поэтому не нужно каждый раз генерировать SQL-операторы выборки данных, обрабатывать их в приложении и часами ждать, когда будет получен результат. Вывод: нужно держать программистов как можно дальше от разработки систем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 14:18 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Например распределение инвойса по заказам. В этом алгоритме сочетается построчная обработка "входящей таблицы-инвойса" (процедурный подход) с контекстными SQL-запросами к базе заказов. На подобных "пограничных" случаях может сломаться любая "безупречно задуманная" архитектура. Внутри ХП пишем банальный курсор. И ничего не ломается. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 14:57 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
LSVКак получить сложный отчет-датасет в другом приложении (допустим есть такое требование) ? Никак. Только повторив в нем всю логику, кот. нужна в этом датасете. А это может быть просто эпическая мегажесть. А если таких датасетов 10-20-50 ?Если интересует как сделать не через БД, то очевидно, через API. Тут иной вопрос можно поставить: как дать клиентам возможность строить свои отчеты не давая прямой доступ к БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 07:55 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Если Вы планируете использовать конкретную БД, тем более с поддержкой PL/SQL - однозначно переносите логику в БД. Я думаю скорость и надежность важнеее мистической "независимости от БД" или "сложности сопровождения", Если это может делать БД - лучше БД это никто не сделает и в результате все вернется к выполнению запроса. Идеальная модель - это база данных с restfull интерфейсами, где сложная логика реализовани в базе в пакетах и хранимых процедурах, есть нормальная реляционная модель. Правильный ответ был у ТС во втором сообщении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 08:43 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
Алексей ВыхрыстюкЕсли Вы планируете использовать конкретную БД, тем более с поддержкой PL/SQL - однозначно переносите логику в БД. Я думаю скорость и надежность важнеее мистической "независимости от БД" или "сложности сопровождения", Если это может делать БД - лучше БД это никто не сделает и в результате все вернется к выполнению запроса. Идеальная модель - это база данных с restfull интерфейсами, где сложная логика реализовани в базе в пакетах и хранимых процедурах, есть нормальная реляционная модель... А над ней еще одна идеальная модель, с нормальной семантически развитой моделью, и мэппингом на всех трех уровнях к первой идеальной модели, включая интерфейсы к restfull интерфейсам))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 11:17 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
авторА над ней еще одна идеальная модель, с нормальной семантически развитой моделью, и мэппингом на всех трех уровнях к первой идеальной модели, А вот и нет. Над этим благолепием еще надмозг, на ходу сочиняющий необходимые проводки/транзакции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2015, 11:44 |
|
||
|
Стоит ли переносить часть бизнес логики на БД?
|
|||
|---|---|---|---|
|
#18+
caballeroKimel, не очень понятно зачем вы вцепились в асинхронный режим. в программах типа ERP он никаким каком не разгружает железо, как и подавляющем числе других сайтов. Польза ноды только для сайтов с снодженством мелких запросов (типа сообщния в соцсетях) которые как раз обрабатываются в одном потоке без всякой параллельности - в этом и был изначальный смысл такого решения. не распаралеливание а как раз наоборот. Все что там навернули потом это от лукавого. Впрочем при нынешних ценах на железо подобные вопросы - экономия на спичках. то же касается react - разработка одностраничных приложений гораздо более трудоемкая причем реального смысла в этом нет - пользователю начхать как оно там сделано. А вот на что не начхать будет так это на мобильныей платформы. Кроме того нет смысла в опенсорсе если с этим никто не будет разбираться - серьезно думаете что кто то станет изучать ноду и некий реакт чтобы работать с вашей програмой? Даже исходники смотреть не станут. Расказы фанатов ноды и реакта о том что это типа эволюция не более чем бла-бла-бла. Сегодня гугл пиарит ноду а завтра забьет и станет пиарить что то новое, ненадёванное. Впрочем с таким странным подходом вы вряд ли что то сделаете - поверьте в реализации подобных программ вопросы железа и асинхронности даже не на десятом плане. И кстати ERP немыслима без учетной системы -что можно планировать если нет учета и регистрации хозяйственных операций. в этом посте написано многое, что и я хотел бы сказать по поводу топика. так что дико плюсую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2015, 21:23 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1540490]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
100ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 326ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...