Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Подключенный стиль, или автономная модель?


Автор: Compositum 7.1.2008, 11:19
M$ возлагает огромные надежды на автономную модель, как я понимаю (например из того, что вся книга Сахила Малика пропитана ее восхвалениями), но, как ни странно, по отзывам на др. форуме, я вижу, что в реалии ее не любят, отдавая предпочтение выборке в подключенном стиле... Ока, но! У меня в этом случае сразу возникает вопрос. DataSet копирует структуру базы (упрощенная модель). Т.е. в ней присутствуют ограничения и связи (жаль конечно, что триггеров нет). Но это хоть в какой-то мере похоже на копию источника данных. Это я к тому, что все проверки и вычисления должны выполняться не на стороне клиента а в самой базе, за счет имеющихся ограничений, триггеров, х.п. . ИМХО. Работая с автономной моделью, мы работаем, можно сказать с образом базы, который отчасти выполнит те действия/проверки, которые должна была выполнить реальная база.
В случае подключенного стиля - все проверки придется выполнять на стороне клиента, что весьма не удобно и, как мне кажется, не рационально, поскольку это все равно будет делаться на сервере.
Можно конечно же каждую запись править/добавлять в отдельно вызываемом окне формы, заблокировав ДатаГридВью, чтобы юзер не мог править данные непосредственно в ней, но... Теряется удобство и, что весьма не маловажно - дружелюбный, интуитивно понятный интерфейс.
Малик посвятил работе в подключенном стиле всего одну главу (5-ю), размер которой всего 31 стр.
Все остальное - под автономную модель... Вся книга пропитана идеей, что автономная модель спасет мир. =)))
Хочу, прежде чем определиться с моделью, собрать вместе и проанализировать мнения людей, имеющих опыт в данном вопросе.
Сибки.

Автор: Compositum 7.1.2008, 11:49
ока. задам вопрос такой:
Допустим, что работа ведется без датаСет.
Т.е. я отправляю х.п., получаю выборку данных.
Вешаю на события добавления/обновления/удаления моей ДатаГридВью вызов необходимых х.п.
Параллельно др. юзер сидит и правит этот же список записей (допустим, что одну и ту же запись мы править не будем никогда). Мне ведь нужно видеть результаты и его правки, дабы я не ввел инфу, которую он уже ввел (дабы дурную работу не делать). т.о. я должен после каждого добавления/удаления/обновления либо очищать датаТаблу, с которой мой ДатаГридВью считывает записи, и заполнять поновой, либо иметь дополнительную таблу, в которую будет копироваться текущая выборка записей с сервака, затем программно сравнивать содержимое обоих таблов и добавлять в отображаемые мне данные те, которых у меня не хватает (т.е. не придется делать полную "перерисовку" моего ДатаГридВью).
Вот 2 способа, которые приходят мне на ум. Из опыта подскажите плиз, какой лучше взять на вооружение и почему? Возможно есть третий и даже четвертый... Буду рад услышать и их....

Автор: mr.DUDA 7.1.2008, 12:43
Цитата(Compositum @  7.1.2008,  10:19 Найти цитируемый пост)
 (жаль конечно, что триггеров нет)

Есть аналог триггеров - события RowAdded, RowChanged etc  smile 

Цитата(Compositum @  7.1.2008,  10:49 Найти цитируемый пост)
Вот 2 способа, которые приходят мне на ум. Из опыта подскажите плиз, какой лучше взять на вооружение и почему? Возможно есть третий и даже четвертый... Буду рад услышать и их....

Такие вопросы лучше задать на sql.ru, там теоретики БД сидят. Или книжку умную достать. Где-то в одной из книг я видел аж три способа организации lock-ов с помощью дополнительных полей в таблицах а-ля timestamp, и триггеров проверяющих на предмет конкуретного доступа на запись. Не помню книгу.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)