[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Триггер
Страницы: 1, 2, 3, 4
Guest
Цитата (chee @ 6.01.2017 - 00:53)
Guest, ну тут ты его не совсем понял, речь шла о двух приложениях у которых, допустим, 50% уникальной функциональности, а 50% общей. Я думаю он это имел ввиду.

Ну я уже немного троллю его. Просто ему нужно гуглить, а не рассуждать о дублировании.
https://ru.wikipedia.org/Микросервисы
Valick
что-то ваши холивары начинают меня утомлять... старею наверно
Скажу только одно триггеры и хранимые процедуры очень полезная, но в большинстве случаев ненужная вещь. Многие программисты озабочены нагрузкой на БД и доводя это до абсурда сокращают количество запросов к БД ради самого сокращения количества запросов, и при этом с лёгкостью херачат туда триггеры, которые сами по себе не "пряник".
Триггеры нужны там где без них не обойтись, а не там где "не хватает ума написать обычный запрос".
Ну и, для общего развития, при работе с денюжкой чаще помогают транзакции нежели триггеры.

_____________
Стимулятор ~yoomoney - 41001303250491
chee
Цитата (depp @ 6.01.2017 - 01:16)
триггеры это прежде всего целостность данных. и никто в жизни не сможет доказать что на уровне приложения можно поддержать целостность данных лучше, чем на уровне встроенных средств бд.

Я не эксперт в этом, потому я не скажу, лучше ли они справляются в этом деле чем клиентская аппликуха (но возможно тут я соглашусь, так как у тригерров данные с которыми они будут работать имеют вероятнсоть быть более персистентными чем в апликухи). Но опять же, я тут поднимал вообще другую тему, применимость всех этих извращений(триггеров, процедур, планировщика, расчет времени в СУБД) в повседневных задачах программиста.

Valick, ну в принципе, я с тобой согласен.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Guest
Цитата (depp @ 6.01.2017 - 01:16)
вот у вас спор то тут. тут как с дампами. также и программисты. те кто не использует триггеры и те кто уже использует. видимо, еще не дорос. не в обиду сказано.
триггеры это прежде всего целостность данных. и никто в жизни не сможет доказать что на уровне приложения можно поддержать целостность данных лучше, чем на уровне встроенных средств бд.

Ну да, у тех кто не дорос (не в обиду сказано), часто бывает бзик по поводу целостности данных, ведь они еще ничего не слышали о eventual consistency и распределенных систем не писали. Распределенные приложения вообще никогда не бывают в согласованном состоянии в один момент времени. Например все видели, что с банковского счета списывают средства сразу, но на другом они появляются только спустя N времени. Всё это время целостность данных нарушена.

Просто есть приложения, которые не уживаются в рамках одного сервера. И всё, к чему ты привык триггеры, ACID, транзакции и целостность данных прямо в этот момент это всё не работает в распределенных системах.

Цитата
триггеры это прежде всего целостность данных

Ок. В монго нет триггеров. По твоему у неё проблемы с целостностью данных или может всё же проблемы у программиста?
depp
Цитата (Guest @ 6.01.2017 - 01:53)
с банковского счета списывают средства сразу, но на другом они появляются только спустя N времени

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

монго - nosql база. у нее по определению не может быть триггеров. это просто хранилище.
Guest
За всех говорить не нужно. Всем понятно, что бывают межбанковские переводы. И всё представление о триггерах, acid, транзакциях моментально рухнет. sad.gif
depp
я вам еще раз повторю. я работаю с финансами. и использовать в своей сфере не реляционные бд подобно разорению. банальная ситуация: человек хочет перевести средства. мы проверяем есть ли нужная сумма. nosql со своим "eventual consistency" ответит что да. а на самом деле - нет. понимаете?
Guest
Цитата (depp @ 6.01.2017 - 01:58)
монго - nosql база. у нее по определению не может быть триггеров. это просто хранилище.

Я вас прошу, не топите себя. Ваше "по определению" не верно. Cassandra, DynamoDB и еще куча баз данных тоже nosql, но поддерживают триггеры. Даже для монго фанатами написаны костыли добавляющие триггеры.
Guest
Цитата (depp @ 6.01.2017 - 02:18)
я вам еще раз повторю. я работаю с финансами. и использовать в своей сфере не реляционные бд подобно разорению. банальная ситуация: человек хочет перевести средства. мы проверяем есть ли нужная сумма. nosql со своим "eventual consistency" ответит что да. а на самом деле - нет. понимаете?

Я вам еще раз повторяю, что средства списываются сразу. Зачисляются спустя время. Eventual consistency ответит что нет. а на самом деле - тоже нет. понимаете?

Eventual consistency это не что-то из мира nosql. Это просто подход. И может применяться в контексте реляционных, графовых, объектных и каких угодно баз данных.
depp
вы меня не передразниваете. nosql базы это хранилища. использовать хранилища и делать из них sql базу? не вижу ни одной задачи для nosql баз, кроме логгирования.
вопрос был про триггеры. вы приплели тут и mongodb и eventual consistency. и еще Cassandra с DynamoDB. в чем смысл вашего сообщения? триггеры для вас это плохо? не используйте.
Guest
depp, нет не плохо. Плохо то, что программисты не понимают, когда использовать, а когда не использовать. Даже в этой ветке, кто-то использует, чтобы сохранить целостность, кто-то устранить дублирование. Кто что. И гуглить не хотят, что для решения всех этих задач есть подходы лучше. Что триггеры имеет смысл использовать, если бек это тонкая прослойка без логики для передачи данных с базы на фронт.
Guest
Цитата
в чем смысл вашего сообщения?

Вы написали про целостность данных. Я вам немного рассказал, что целостность она разная бывает. И что поддерживать её можно другими средствами, без размазывания логики между бекендом и базой.
depp
вы меня удивляете своими сообщениями. в чем по вашему смысл триггеров? и не надо в гугл отправлять.
Цитата (Guest @ 6.01.2017 - 03:23)
Даже в этой ветке, кто-то использует, чтобы сохранить целостность, кто-то устранить дублирование. Кто что. И гуглить не хотят, что для решения всех этих задач есть подходы лучше

опишите тогда эти подходы.
Guest
Цитата (depp @ 6.01.2017 - 03:51)
в чем по вашему смысл триггеров?

Я уже писал, использовал если бы не было бекенда как такового, но кое какая минимальная логика присутствала. Можете ознакомиться почему триггеры это зло http://allthingsoracle.com/the-problem-with-triggers/

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

Цитата
опишите тогда эти подходы.

Я уже писал. Нужна целостность - используйте транзакции, если распределенное приложение - используйте eventual consistency.
Нужно устранить дублирование - используйте SOA/микросервисы. Сделайте вместо триггера сервис и пусть другие сервисы обращаются к этому сервису, когда им нужно выполнить данную функциональность.

Всё это гуглится за несколько секунд, во всех подробностях.
Zzepish
Valick
тут обучающий момент для меня больше, чем выполнение задания. Условие: данные будут вводиться на прямую через бд. Т.е. нуден триггер, чтоб самому не высчитывать и не править еще огдни данные
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.