Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

'Разделение' БД между клиентом и сервером

263
15 января 2007 года
koltaviy
816 / / 16.12.2004
Ситуация следующая:
Создается клиент-серверное(TCP\IP) приложение с БД, а именно тестирование.
Насколько разумно 'вешать' всю базу целиком на сервер, если каждый клиент все-равно будет запрашивать содержание самих тестов у сервера, а редактирование тестов на клиентах невозможен.
Ответы тестируемых, естественно, будут записываться в БД на сервере..
Какое решение посоветуете?
2
15 января 2007 года
squirL
5.6K / / 13.08.2003
а почему нет? и какие альтернативы ты видишь? вполне нормальное решение.
11K
15 января 2007 года
.nornad
125 / / 04.01.2007
А зачем такие сложности? Для чего усложнять программу, если размер вопросов в тестах, даже с учётом возможной графики, невелик и передаётся по сети достаточно быстро? Всё равно ведь ответы должны быть переданы на сервер.
Единственная разумная причина для такого разделения заключается, по-моему, в организации возможности оффлайн-тестирования. В этом случае ответы пишутся в базу на клиенте, а на сервер передаются при запуске синхронизации.
1
15 января 2007 года
kot_
7.3K / / 20.01.2000
Смотря что ты хочешь добиться. Если клиенты и сервер находятся в одной подсети или домене и задачей является простая запись в базу - используй обычную клиент-сервер.
Если требуется дополнительная обработка - типа шифрования/дешифровка и т.п. - наиболее оптимально в такой задаче использовать трехзвенку, правда при условии, что клиенты и сервер находятся в одном домене. Тогда клиент будет запрашивать все необходимые данные на сервере.
Если же предполагается удаленная работа, тогда локальную базу иметь стоит в качестве буфера для передачи данных и хранения относительно постоянных данных. По крайней мере именно таким образом я реализовывал клиентов в своей задаче.
263
15 января 2007 года
koltaviy
816 / / 16.12.2004
Цитата: squirL

а почему нет? и какие альтернативы ты видишь? вполне нормальное решение.


Я вижу два способа решения данной задачи:
1) База с вопросами лежит на каждом клиенте, соответственно никаких данных они(клиенты) у сервера не запрашивают. При прохождении теста данные о пройденном тесте(тестируемом и т.д.) отсылаются клиентом на сервер и пишутся в общую таблицу(ы) в БД на сервере.
2) Базы на клиенте никакой нет.. Все данные лежат на сервере. При запуске каждого следующего теста(их несколько) клиент отсылает запрос на соответствующие данные серверу, сервер же, в свою очередь, отсылает соответствующему клиенту что он хочет..
В этом и состоит вопрос: нужно ли все данные хранить на сервере или можно хранить их у себя (на клиенте). Ведь тогда отпадет необходимость запрашивать кучу данных(я не про объем, а про разную структуру) у сервера.
Оговорюсь, что данные не confedential, т.е. 'прятать' их на сервере смысла не имеет!!

Цитата: .nornad

..
Единственная разумная причина для такого разделения заключается, по-моему, в организации возможности оффлайн-тестирования.
..


В оффлайне можно запустить и сервер и клиент на одной банке!..

2
15 января 2007 года
squirL
5.6K / / 13.08.2003
ИМХО, в данной ситуации лучше использовать вариант 2.
11K
15 января 2007 года
.nornad
125 / / 04.01.2007
Цитата: koltaviy
В этом и состоит вопрос: нужно ли все данные хранить на сервере или можно хранить их у себя (на клиенте). Ведь тогда отпадет необходимость запрашивать кучу данных(я не про объем, а про разную структуру) у сервера.



Хранить у себя можно, но в твоём случае это не лучший вариант.

Цитата:
В оффлайне можно запустить и сервер и клиент на одной банке!..



Догадываюсь ;) Но что ты будешь делать, если тебе надо проводить тестирование не на одной машине, а на десяти и они соединены в сеть? Писать новый вариант программы (вероятность так спроектировать программу для локальной работы клиент-сервер, что она не сможет работать по сети не так уж и мала)?
Имхо, лучше всё же использовать одну базу.

А под оффлайном я подразумевал работу с сервером, скажем, в другом городе и при плохом канале связи. ;)

263
16 января 2007 года
koltaviy
816 / / 16.12.2004
Цитата: .nornad

Хранить у себя можно, но в твоём случае это не лучший вариант.


Аргументируй, пжлста.

Цитата: .nornad

..
Но что ты будешь делать, если тебе надо проводить тестирование не на одной машине, а на десяти и они соединены в сеть? Писать новый вариант программы (вероятность так спроектировать программу для локальной работы клиент-сервер, что она не сможет работать по сети не так уж и мала)?
..


Вот это вообще не понял!

Цитата: .nornad

..
А под оффлайном я подразумевал работу с сервером, скажем, в другом городе и при плохом канале связи.
..


Что это за 'оффлайн' такой?:confused: :D

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог