Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
Основы ORM - Изменение записей http://forum.kohanaframework.su/viewtopic.php?f=36&t=364 |
Страница 2 из 2 |
Автор: | Sergey [ 08 сен 2012, 19:43 ] |
Заголовок сообщения: | Re: Основы ORM - Изменение записей |
admin писал(а): А если их 5000 ? Получится 5001 запрос. 1. И как часто встречается ситуация когда нужно удалить 5000 черновиков? 2. Можно использовать триггеры 3. Можно создать хитрую таблицу (InnoDB) и использовать ссылочную целостность (внешние ключи) - тогда достаточно будет удалить одну запись в таблице черновиков, а СУБД сама позаботится о том, чтоб удалились все черновики из таблицы постов. А вообще да - согласен, этот метод проще и в некоторых ситуациях быстрее. Да и потом если вы используете ORM никто вам не запрещает комбинировать методы взаимодействия с БД. |
Автор: | admin [ 08 сен 2012, 19:58 ] |
Заголовок сообщения: | Re: Основы ORM - Изменение записей |
Ситуация, когда нужно удалить несколько записей, встречается довольно часто. С черновиками - это лишь пример. 5000 черновиков бывает )) вот взять хотя бы вордпресс. Я пока урок один напишу, он успевает создать 40-50 черновиков Я потом их чищу. Так это один урок и я сразу лишнее прибиваю. А в самом начале порядка 1000 скопилось, пока я плагин DelRevisions не поставил. Цитата: Да и потом если вы используете ORM никто вам не запрещает комбинировать методы взаимодействия с БД. Вот ! Я ж к этому и веду. Не всегда стоит бездумно использовать ОРМ, а потом удивляться, а чой-то у меня сайт так тормозит. |
Автор: | admin [ 08 сен 2012, 20:01 ] |
Заголовок сообщения: | Re: Основы ORM - Изменение записей |
Кстати с изменениями записей такая же фигня. Где-то встречал пример, скажем сделать все непрочитанные записи прочитанными. У поля read поменять 0 на 1. Через орм мы выбираем записи с read = 0 и в цикле меняем каждую запись на 1. А можно написать один запрос с update. |
Автор: | AmberLEX [ 16 сен 2012, 02:36 ] |
Заголовок сообщения: | Re: Основы ORM - Изменение записей |
Не знаю, я для удаления этим пользовался Код:
|
Автор: | yodo780 [ 04 окт 2012, 13:00 ] |
Заголовок сообщения: | Re: Основы ORM - Изменение записей |
А такая конструкция для удаления не пойдет? Код:
|
Автор: | mamahtehok [ 05 окт 2012, 11:18 ] |
Заголовок сообщения: | Re: Основы ORM - Изменение записей |
Такая конструкция удалит только первую запись. |
Автор: | Sergey [ 06 окт 2012, 01:43 ] |
Заголовок сообщения: | Re: Основы ORM - Изменение записей |
yodo780 писал(а): А такая конструкция для удаления не пойдет? Код:
Тут нужен delete_all() |
Автор: | nkl [ 23 май 2013, 15:50 ] |
Заголовок сообщения: | Re: Основы ORM - Изменение записей |
yodo780 писал(а): А такая конструкция для удаления не пойдет? Код:
mamahtehok писал(а): Такая конструкция удалит только первую запись. Такая конструкция нихера не удаляет. Говорит, что Цитата: Cannot delete reference model because it is not loaded. Хотя, если заменить ->delete() на find() или find_all(); я пркрасно получаю запись которую мне нужно удалить. Ну так как в ORM записи то удаляются? |
Автор: | AmberLEX [ 23 май 2013, 16:00 ] |
Заголовок сообщения: | Re: Основы ORM - Изменение записей |
Цитата: Хотя, если заменить ->delete() на find() или find_all(); я пркрасно получаю запись которую мне нужно удалить. Ну так как в ORM записи то удаляются? А в доки никак зазлянуть? http://kohanaframework.org/3.3/guide/orm/using#deleting |
Автор: | nkl [ 23 май 2013, 16:30 ] |
Заголовок сообщения: | Re: Основы ORM - Изменение записей |
Спасибо. |
Страница 2 из 2 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |