![]() |
|
Модераторы: skyboy |
![]()
|
|
| nIkTo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
Существуют две таблицы tasks и jobs вот примерная структура :
Необходимо : При изменении поля status (установится равным 2) таблицы jobs, обновить поле done (общее количество записей в таблице jobs с taskID=taskID и status=2) в таблице tasks для taskID у которого отработал job (status стал равен 2) Как это сделать ? |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
можно при помощи триггера, можно при помощи multi table update, можно дополнительным запросом с клиента. это в общем.
а в частности - лично я не вижу картины целиком. вот есть некий task. с каждым task'ом связано неопределенное количество job'ов. И вот у одного из job, надо что-то менять в связанном task'e. Т.е. выполнили только один job, но task отмечаем выполненным. так? или все же надо отследить ситуацию "все job имеют status=2 - значит, помечаем task выполненным записью в поле done"? |
|||
|
||||
| nIkTo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
skyboy, в поле done содержится количество выполненных job для данного task
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
"ленивый" способ - добавить триггер на изменение(изменение значения поля jobs.status).
"нормализованный" - убить поле "done" с количеством связанных выполненных jobs - считать такое количество каждый раз "на лету" |
|||
|
||||
| nIkTo |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
Вот думаю так реализовать:
Добавлено через 9 минут и 6 секунд А не лучше сделать триггер вот так (точнее что будет быстрее отрабатывать) ?
|
||||
|
|||||
| Neox_GeForce |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 14.11.2007 Где: Украина Репутация: нет Всего: нет |
Может лутше обновлять реально с клиента?
Какие будут нагрузки на БД ? И в твоем случае триггер изменяет значение другой таблицы, мне кажется это не очень эффективно. -------------------- ![]() Челябинские программисты настолько суровы, что обходятся без компиляторов. Челябинские программисты настолько суровы, что считают ассемблер недопустительной роскошью - они вручную магнетизируют участки жесткого диска. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |