Правильный подход для управления базой данных

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Правильный подход для управления базой данных

Сообщение altwin » 26 янв 2014, 18:34

Foenix писал(а):
altwin писал(а):Меня почему то контент провайдер сразу пугает тем,что не только нельзя отследить прогресс, но и остановить его нельзя. А как быть если нет соединения с сервером или ошибка авторизации, получается я могу вызвать его, но о этой ошибке мне никто не скажет, только проверка на null и вся информация... Как бы не очень интересная штука.
але... с каким сервером?? мы таки щас о чем?
ну ок без сервера, просто база по какой то причине не доступна, банально повисла файловая система он же вернет null но почему не скажет. Да и если реально большой запрос повис - как его остановить, а как прогрес видеть.
Изображение

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Правильный подход для управления базой данных

Сообщение Foenix » 26 янв 2014, 18:36

altwin писал(а):
Foenix писал(а):стоп. а раньше ты про курсоры говорил. И где курсор у тебя используется?
курсор для выборки без формирования всего пула объектов, в том же фоновом потоке, существует колонка в которой в случае установки флага в true создается запись в лог, чтобы не дергать объект из разных мест одновременно тем более для простой задачи, я просто вытаскиваю курсором имя, штамп времени и остальное нужно, в любом случае соединение с базой я открываю один раз для создания объектов, далее это происходит без моего вмешательства, т.е. на все объекты получишвшие флаг true в стеке открывается соединение/забирается нужное/пишется, но процессом не связанным с основным и только одним.
И да, может я что то и не так делаю, но чтобы пройти циклом по базе мне как раз курсор нужен.
P.S. главный баг, который в данном случае для меня фича в том, что для cursor соединение никогда не закрывается, а вот флаг он считывает с объекта, но запись в базе не меняет, т.е. эта колонка в базе на сервере отличается от реальной ситуации в устройстве и до тех пока не будет вызван метод явного сохранения, все изминения статусов обратимы без обращения к серверу.

Ну и как бы я описывал изначально то, как стараюсь использовать базу и конкретный случай, это не значит, что я всегда использую все, что можно. Иногда просто быстрей взять курсор а не думать над логикой объектов.
тут как я ни пыталась - ничего не поняла :(
вероятно у меня другие мысли. Я про локаль говорю вообще тут в теме. Сервер не трогаю.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Правильный подход для управления базой данных

Сообщение altwin » 26 янв 2014, 18:38

Foenix писал(а):
altwin писал(а):
Foenix писал(а):
циклом проходит по подготовленной таблице select -ом
так не бывает. Что-то не то.
в смысле? поля базы передаются в конструктор, _id в данном случае используется в итерации, обычный инкремент позволяет пройти все по порядку, если целостость базы нарушенна и _id пропущенна - просто continue.

P.S> как бы да id - по порядковому номеру, при необходимости можно использовать не id, а любое поле, просто в select ... where <_id>. Ничего не мешает конструктору принимать имя/пароль к дб, массив имен колонок, и поле по которому идет инкремент.
ох как сложно это все воспринимать, осоенно когда лексика не одинаковая!
"пройти по порядку" что?
причем тут _id причем тут пропуски? эй
ох
если вот это
select ... where <_id>
у тебя в цикле по _id
если это действительно так, как ты пишешь, то это ой-ой-ой какой ужасно неправильный и катастрофически медленный способ, что я просто тут не знаю что сказать даже.
тут не важно id это или что то еще, просто колонка в базе значения которой для строк увеличиваются по порядку. Я не говорил, что загрузить все объекты -это быстро и именно по этому ограничиваю число записей в базе на устройстве. Но это происодит один раз и полностью контролируемо. Зато если select для какой то строки не выполняется я явно отлавливаю этот момент и могу повторить/продолжить.
Изображение

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Правильный подход для управления базой данных

Сообщение altwin » 26 янв 2014, 18:44

Foenix писал(а):Я про локаль говорю вообще тут в теме. Сервер не трогаю.
использовать курсор можно и в цикле в этом суть, остальное не важно:
[syntax=java5]
rawQuery("select * from todo where _id = ?", id );
[/syntax]
где id инкрементится, это не особо медленно, поскольку на те же 100 объектов времени практически не тратится. А больше я не создаю.

P.S. до меня кажется дошла суть вопроса. дело в том, что сервер отдает базу sqlite под этот запрос устройству. т.е. база не формируется а по сути копируется. Запрос в цикле очень простой, потому как эта таблица - результат обработки таблиц на сервере. Т.е. на устрйстве лежит база в которой грубо говоря сложенно поле для инкремента, имя, дата, контент, фото и подобная мелочь, которые исопльзутся далее, никаких связей тут нет, ничего служебного, база отдана именно для этого select, запрос очень простой именно потому что никаких фильтров нет.

Не знаю, как это объяснить.. приложение по сути не работает с базой вообще, все данные идут в виде rest на сервер в базу ничего не пишется по сути и принимается большая часть через rest api, база используется в данном сулчае для listview и обычно я так и делаю для мелких задач в UI. Это обычное key / value хранилище, просто реляционное :) Да select есть, но это не больше чем select *, если нужно что то изменить - запрос на сервер и там переформируется база и синхронизируется с Android. тот же update к базе отрабатывает как post запрос и результат будет только при следующем запуске при условии, что подтвержденно получение обновлений. ТУт дело в том, что даже сервис внося изменения в базу на устройстве по сути ничего не меняет, он предлагает изменения, но пользователь должен явно вызвать update, чтобы запрос пошел и кстати не факт, что он отработает.
Изображение

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Правильный подход для управления базой данных

Сообщение Foenix » 26 янв 2014, 19:14

понимаешь.. мы тут пытаемся писать проекты как портфолио, и там буквально все - каждый алгоритм, каждый метод, каждая буква в наименовании переменной должна быть аутентичной - отвечающей определенным стандартам etc. Чтобы не было мучительно стыдно показать свой код.
С этой точки зрения мой код, который я применяла раньше - можно было бы назвать "грязным" с точки зрения даже ооп или именований объектов, но у меня не было настолько далеких от правильности алгоритмов))

Так вот с этой точки зрения данный "велосипед" .. я даже не знаю - это настолько далеко от аутентичного кода..

Я не осуждаю ничуть, тут каждый сам знает зачем пишет и для чего.. просто с точки зрения баз данных - это совсем совсем не то. Такое делают раз в жизни - в самом первом проекте, потом читают, изучают, меняют подход на правильный и больше никогда к нему не возвращаются.
Опять же - общение с сервернуой частью я не беру, т.к. я в этом вопросе не разбиралась.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Правильный подход для управления базой данных

Сообщение Foenix » 26 янв 2014, 19:18

т.е. есть вещи, которые нужно делать изначально с правильным подходом - не важно сколькоу тебя записей в таблице 100 или 100 тыс. На то и программист, чтоб предусматривать то, что завтра их будет сколько угодно и все должно работать.. Подход "а, у меня все равно тут всего 100 записей" - не для меня. Однажды кто-то где-то чего-то не поймет, не допишет, не определит.. ничего не должно валиться и не работать или работать медленней чем это могло бы быть..
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Правильный подход для управления базой данных

Сообщение altwin » 26 янв 2014, 19:20

Вообще почитав, что я тут понаписал, сам не особо понял.. суть простая - это частный случай. Для меня важно хранение строк из базы в объекте еще и потому, что его адрес используется как один из ключей шифрования и сохраняется в keystore устройства, получить запись другим способом нельзя, как и востановить не возможно. Если отработал метод update адреса объектов и ключи меняются и операция должна быть не обратимой. Это гарантирует то, что действия сделанные пользователем уникальны для утсройства. На сервер пойдут только явно либо не пойдут вообще. И прочитать их не возможно однажды закрыв. Ключ не читается. Можно только отдать серверу вместе с ключем, ключ удаляется. Т.е. любую операцию можно сделать один раз, просмотреть, изменить, даже открыть повторно невозможно не только выполнив update но и банально начав новое действие. Тут вопрос не в скорости а в большом количестве уникальных данных, которые формируются в конечный 4 мб. ключ на сервере. А там уже опять таки прочитать нельзя - можно получить результат обработки важной информации из кучи мусора собранной из группы устройств.. как то так.

P.S. как бы да передомной стоит задача писать не читаемый код, я и не пытаюсь следовать патернам и более того завязываю его на себя.. Собственно и заплатили последний раз за поддержку мне больше именно потому, что другие не разобрались.
Изображение

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Правильный подход для управления базой данных

Сообщение altwin » 26 янв 2014, 19:30

Foenix писал(а):Подход "а, у меня все равно тут всего 100 записей" - не для меня. Однажды кто-то где-то чего-то не поймет, не допишет, не определит.. ничего не должно валиться и не работать или работать медленней чем это могло бы быть..
Не совсем корректно у меня не всего 100 записей, я сознательно ограничил устройство на получение 100 записей, это не 100 записей в базу по сути - это файл sqlite который никогда не получит более 100 записей. Ну и как бы я для того и делаю, чтобы кто то а лчше никто ничего не понял :) Я не стремлюсь использовать открытый код в своем проекте и более того не хочу, чтобы мой код использовали. Опять же тут довольно спецефичная задача. Да и я лишь винтик выполняющий довольно абстрактную задачу и пытающийся защититься максимально.
Изображение

Аватара пользователя
anber
Сообщения: 584
Зарегистрирован: 10 июн 2013, 15:05
Откуда: UA

Re: Правильный подход для управления базой данных

Сообщение anber » 26 янв 2014, 19:34

Foenix писал(а):
anber писал(а):
Foenix писал(а): лучше заставить работать сервер и вычислятЬ, чем устройство - это и дураку понятно
интересная мысль.
это все, что я говорила интересного??? :shock:
:mrgreen: :mrgreen: :mrgreen:
Чисто гипотетически представим что у моего приложения 1'500'000 активных юзеров + втрое больше с iOS, не считая веб клиент.
Причем у подавляющего большинства Samsung S4, HTC one и прочая 4-ех ядерная хренотень, и ты в серъез считаешь что нужно перекладывать вычисления с клиентов на сервер?
Личные сообщения с просьбой ответить на форуме или написать программу я просто удаляю, если я в хорошем настроении. Если в плохом добавляю автора в черный список. По любым другим вопросам feel free to write to me.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Правильный подход для управления базой данных

Сообщение altwin » 26 янв 2014, 19:40

anber писал(а):
Foenix писал(а):
anber писал(а):
Foenix писал(а): лучше заставить работать сервер и вычислятЬ, чем устройство - это и дураку понятно
интересная мысль.
это все, что я говорила интересного??? :shock:
:mrgreen: :mrgreen: :mrgreen:
Чисто гипотетически представим что у моего приложения 1'500'000 активных юзеров + втрое больше с iOS, не считая веб клиент.
Причем у подавляющего большинства Samsung S4, HTC one и прочая 4-ех ядерная хренотень, и ты в серъез считаешь что нужно перекладывать вычисления с клиентов на сервер?
Какие вычисление можно сделать на устройстве? Ну а вообще другого пути нет. Или google/facebook что то считает в телефоне? реализовать логику для iOS/Android/Server/Desktop - это сколько ж человек надо?
Изображение

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Правильный подход для управления базой данных

Сообщение Foenix » 26 янв 2014, 19:56

altwin писал(а):
Foenix писал(а):Подход "а, у меня все равно тут всего 100 записей" - не для меня. Однажды кто-то где-то чего-то не поймет, не допишет, не определит.. ничего не должно валиться и не работать или работать медленней чем это могло бы быть..
Не совсем корректно у меня не всего 100 записей, я сознательно ограничил устройство на получение 100 записей, это не 100 записей в базу по сути - это файл sqlite который никогда не получит более 100 записей. Ну и как бы я для того и делаю, чтобы кто то а лчше никто ничего не понял :) Я не стремлюсь использовать открытый код в своем проекте и более того не хочу, чтобы мой код использовали. Опять же тут довольно спецефичная задача. Да и я лишь винтик выполняющий довольно абстрактную задачу и пытающийся защититься максимально.
я не хочу подвергать сомнению важность хранения в объектах и так далее.. это уже не касается бд как таковой...
я говорила только о локальной бд и аутентичном подходе (скорее всего я бы сказала "рекомендуемый гуглом подход") и вроде бы твоей цели - стать программистом)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Правильный подход для управления базой данных

Сообщение Foenix » 26 янв 2014, 19:59

anber писал(а):
Foenix писал(а):
anber писал(а):
Foenix писал(а): лучше заставить работать сервер и вычислятЬ, чем устройство - это и дураку понятно
интересная мысль.
это все, что я говорила интересного??? :shock:
:mrgreen: :mrgreen: :mrgreen:
Чисто гипотетически представим что у моего приложения 1'500'000 активных юзеров + втрое больше с iOS, не считая веб клиент.
Причем у подавляющего большинства Samsung S4, HTC one и прочая 4-ех ядерная хренотень, и ты в серъез считаешь что нужно перекладывать вычисления с клиентов на сервер?
ну начались какие то странные обобщения!
если я храню что-то на сервере и мне нужно юзать те данные, то да, нужно имхо вначале вычислить там же, потом передавать клиенту и показывать. Ясный пень. Я тут имела ввиду распространенную задачу - сервер с серьезной субд, куча данных и прочее.
Но если я храню что-то на телефоне, я не стану передавать это на сервер, чтоб там сложить 2+2. С этим андроид справится.
или что?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Правильный подход для управления базой данных

Сообщение Foenix » 26 янв 2014, 20:02

полтора миллиона юзеров, ну и что, .. да хоть два миллиарда. На то и сервера, чтоб это все обрабатывать. ФБ уже привели в пример.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Правильный подход для управления базой данных

Сообщение altwin » 26 янв 2014, 20:02

Foenix писал(а):
altwin писал(а):
Foenix писал(а):Подход "а, у меня все равно тут всего 100 записей" - не для меня. Однажды кто-то где-то чего-то не поймет, не допишет, не определит.. ничего не должно валиться и не работать или работать медленней чем это могло бы быть..
Не совсем корректно у меня не всего 100 записей, я сознательно ограничил устройство на получение 100 записей, это не 100 записей в базу по сути - это файл sqlite который никогда не получит более 100 записей. Ну и как бы я для того и делаю, чтобы кто то а лчше никто ничего не понял :) Я не стремлюсь использовать открытый код в своем проекте и более того не хочу, чтобы мой код использовали. Опять же тут довольно спецефичная задача. Да и я лишь винтик выполняющий довольно абстрактную задачу и пытающийся защититься максимально.
я не хочу подвергать сомнению важность хранения в объектах и так далее.. это уже не касается бд как таковой...
я говорила только о локальной бд и аутентичном подходе (скорее всего я бы сказала "рекомендуемый гуглом подход") и вроде бы твоей цели - стать программистом)
я им уже стал в принципе, учусь -да третий год, но второй год работаю, как python developer, Android -только потому, что стало интересно ну и как бы бы начинал с C, потому Objective -C и iOS, прикармливает "фрилансера"... Android -пока не отдался окончательно. Я совсем не уверен, что google рекомендует этот подход для решения задач не станартных/описанных в документации, в данном случае решение пока не встречается и не описанно, все, что вижу - написанный код для других платформ и использую их подход, google ведь не умеет шифровать данные в своем диске? В моей задаче это лишь малая часть, которая давно работает.

Опять же, мне удобно то, что есть 100% контроль поведения объектов, возможно будут проблемы с тем, что я создаю сразу все, но в том то и суть - это не все. Просто я не совсем понимаю java и работать с объектом мне проще на данном этапе. Я не против ругих варриантов, просто мне придется менять логику, на это нет времени... а контролировать в каком месте памяти хранить объект не дает java, вот и имеем то, что имеем :) Может причина в том, что я не работал программистом в офисе, более того, не работал в наших компаниях, не перенял best practice... но как бы я не видел, чтобы к этому стремились, стремление сократить сроки, выпустить минимум доступного продукта - да, никогда не видел в задаче - читаемость кода, поддержка - в зависисмости от сложности - оплата, мой код? никто не платил за поддержку...Ну и как бы я пишу тесты... проблем не встретил, встречу - обязательно почитаю, еще раз эту тему и сделаю, как положенно ;)
Изображение

Аватара пользователя
anber
Сообщения: 584
Зарегистрирован: 10 июн 2013, 15:05
Откуда: UA

Re: Правильный подход для управления базой данных

Сообщение anber » 26 янв 2014, 23:07

altwin писал(а):Какие вычисление можно сделать на устройстве? Ну а вообще другого пути нет. Или google/facebook что то считает в телефоне? реализовать логику для iOS/Android/Server/Desktop - это сколько ж человек надо?
Реализовать логику чего?
Foenix писал(а):полтора миллиона юзеров, ну и что, .. да хоть два миллиарда. На то и сервера, чтоб это все обрабатывать. ФБ уже привели в пример.
Что касается ФБ то у них дата центры по 750'000'000$ штука, а тут халявный миллион девайсов на который можно переложить вычисления.

UPD. А вообще можете мои реплике в этом треде игнорировать, у вас тут своя атмосфера :lol:
Личные сообщения с просьбой ответить на форуме или написать программу я просто удаляю, если я в хорошем настроении. Если в плохом добавляю автора в черный список. По любым другим вопросам feel free to write to me.

Аватара пользователя
anber
Сообщения: 584
Зарегистрирован: 10 июн 2013, 15:05
Откуда: UA

Re: Правильный подход для управления базой данных

Сообщение anber » 27 янв 2014, 18:44

m090050 писал(а):Кстати, была ли необходимость работать с базой с двух процессов?
anber писал(а):имеется в виду в разных приложения, которые работают с одной базой?
m090050 писал(а):в одном
Тот метод который я предложил позволяет безопасно работать с базой из нескольких потоков. См. http://stackoverflow.com/a/3689883/1159507 и http://touchlabblog.tumblr.com/post/244 ... connection
Тот же автор пишет "ContentProvdier is just a lot of overhead and not needed unless you're sharing data outside of your app". http://stackoverflow.com/a/9794146/1159507

Кстати нашел что-нибудь интересное по данной теме?
Личные сообщения с просьбой ответить на форуме или написать программу я просто удаляю, если я в хорошем настроении. Если в плохом добавляю автора в черный список. По любым другим вопросам feel free to write to me.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Правильный подход для управления базой данных

Сообщение Foenix » 27 янв 2014, 19:21

Андрей, мнение " "ContentProvdier is just a lot of overhead and not needed unless you're sharing data outside of your app"" устарело.
Я это на вебинаре говорила и говорила почему. Эта цитата даже на сайте гугла сохранилась, хотя в другом месте они пишут уже другие вещи.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Правильный подход для управления базой данных

Сообщение Foenix » 27 янв 2014, 19:49

http://habrahabr.ru/post/143431/
вот еще довольно старая ссылк ана статью об ORMlite в андроид. Я ее рассматривала, когда выбирала подход. Комментарии автора внизу говорят, что он запросто признает эффективность лоадеров и контент-провайдера.. ну а раз человек в этом разбирающийся так говорит, я ему поверила, дальше с этим подходом возиться не стала как с бесперспективным..
Так же судя по статье, там сложнова-то было бы осуществить, если вообще возможно, те запросы к б.д. что мне нужны были.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Правильный подход для управления базой данных

Сообщение Foenix » 27 янв 2014, 20:18

Кто упорно не хочет смотреть вебинар, вот быстро найденная ссылка.
http://stackoverflow.com/questions/1109 ... gingcursor
где объясняется одна из причин в комментариях, с коими я совершенно согласна, т.к. сама сделала точно такой же вывод после месяца мучений.
they are really wanting people to adopt ContentProviders

Код: Выделить всё

You could write your own CursorLoader that works with Cursors and not ContentProviders and make it a reusable class so that you can use the Loader framework without using ContentProviders.
т.е. чтобы не использовать устаревший метод нужно юзать CursorLoader-ы, а они почти бессмысленны, если их не использовать в соединении с контент-провайдерами, т.к. если использовать их отдельно самая "вкусная" их часть, там где автоматически идет обновление результатов запроса при изменении в бд (о которых как раз сообщает контент-провайдер) работать не будет и тянет за собой другие "велосипеды".
Проще согласиться с гуглом и юзать контент-провайдеры, курсор-лоадеры и другие лоадеры и не париться.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Правильный подход для управления базой данных

Сообщение altwin » 27 янв 2014, 20:28

Foenix писал(а):Кто упорно не хочет смотреть вебинар, вот быстро найденная ссылка.
http://stackoverflow.com/questions/1109 ... gingcursor
где объясняется одна из причин в комментариях, с коими я совершенно согласна, т.к. сама сделала точно такой же вывод после месяца мучений.
they are really wanting people to adopt ContentProviders

Код: Выделить всё

You could write your own CursorLoader that works with Cursors and not ContentProviders and make it a reusable class so that you can use the Loader framework without using ContentProviders.
т.е. чтобы не использовать устаревший метод нужно юзать CursorLoader-ы, а они почти бессмысленны, если их не использовать в соединении с контент-провайдерами, т.к. если использовать их отдельно самая "вкусная" их часть, там где автоматически идет обновление результатов запроса при изменении в бд (о которых как раз сообщает контент-провайдер) работать не будет и тянет за собой другие "велосипеды".
Проще согласиться с гуглом и юзать контент-провайдеры, курсор-лоадеры и другие лоадеры и не париться.
Опять я не понял... мне не нужно автообновление результатов запроса. Я повсместно использую MVC, не смотря на то, что кто то утверждал, как будто я не принимаю подходы рекомендуемые google, просто подходы есть разные. Я хочу контролировать модель и именно потому держу в памяти объекты. При изменении базы, наступает событие, которое опять таки заставляет отработать модель, я действительно вообще не могу понять в чем конкретно проблема? Что именно я делаю не так и где тут проблема? Как бы да, подход применим при определенном стиле программирования, но никак не повсеместно.

P.S. может проблема в том, что не часто использую базу для хранения именно контента? И "Загрузчик контента" мне в принципе не нужен вообще? Этот класс не соответсвует требованиям вообще, он не контролируем, его нельзя остановить, нельзя отследить состояние. зачем он мне я вообще не понимаю...
Изображение

Ответить