|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.03.2011, 14:43 | #1 |
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611
|
Триггеры в базах данных
Встречались ли в открытом доступе (не enterprise) скрипты типа форумов и блогов, использующие сабж?
Хочу посмотреть в образовательных целях, для чего и как их применяют другие. |
01.03.2011, 17:30 | #2 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,177
|
игугл рулит.... недавно встречался с триггерами - на них была реализована одновременная регистрация пользователей в форуме и отдельном сайте
|
01.03.2011, 18:32 | #3 |
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611
|
Ага, ну а что–нибудь посложнее, что–нибудь более важное.
С одной стороны, в базе данные должны быть нормализованы. Ими легче управлять тогда. С другой стороны, если они нормализованы, запросы тормозить начинают. Триггеры должны решать эту проблему. И не только эту. |
01.03.2011, 21:21 | #4 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,177
|
по мне - так тригеры с этим не связаны....ибо это типа храниых процедур, срабатывающих по определенным событиям (вставка, обновление, удаление) как до так и после операций....
думаю с их помощью можно транзакции реализовать, синхронизацию.... облегчать какие то запросы.... но чтобы нормализовать или денормализовать бд - вряд ли |
01.03.2011, 21:26 | #5 |
Laravel/Vue expert
Старожил Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 2,832
|
На Хабре, кстати, неплохая статейка о триггерах.
|
02.03.2011, 01:47 | #6 |
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611
|
Ну вот допустим, чтобы отобразить страницу раздела этого форума, нужна информация о последнем сообщении в каждой теме, об авторах этих сообщений — всё это для нормальной производительности должно выбираться не запросом сложным, а уже должно быть готово к моменту отображения страницы. В Google AppEngine так и вовсе нельзя JOIN делать.
Вот и напрашивается решение: первичные данные храним в нормализованном виде, но для быстродействия дублируем эти данные в дополнительных полях в денормализованном виде. И, сколько я видел, добавка вторичной информации и поддержание её в актуальном состоянии делается не триггерами, а скриптом, а хочется триггеры. Вот, например, FlexViews — довесок к MySQL, который позволяет в MySQL держать материализованные виды и поддерживать их актуальность. Недостаток — требуется похимичить с MySQL сервером, ловля событий не через триггеры сделана, поэтому в скрипт на обобщённый хостинг не поставишь такое. -- В статье описывается, как создавать триггеры, но не описывается, зачем люди делают это, каковы варианты использования. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Триггеры | МартинИ | SQL, базы данных | 4 | 23.12.2010 20:12 |
Базы Данных. Триггеры. | Pashkaaa | БД в Delphi | 1 | 09.09.2009 20:16 |
обмен данными из двух таблиц (одинаковой структуры) но в разных базах | Tanuska___:) | БД в Delphi | 1 | 26.11.2008 19:41 |
Как хранить/изымать дату/время в базах данных mysql? | Gorychev | PHP | 8 | 25.05.2008 14:35 |
запрос который бы подсчитывал количество полных лет начиная с того года который указан в данных мне базах | PereCCC | Помощь студентам | 8 | 15.05.2008 16:24 |