|
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 27
|
|
БД для клиент-серверного приложения18.03.2013, 22:12. Показов 6249. Ответов 42
Метки нет (Все метки)
В общем в универе задали создать клиент-серверное приложение. Я решил сделать программу онлайн заказа дорожек в боулинг, т.е. клиент выбирает дату, время и отправляет запрос, ему приходит ответ о том сколько дорожек свободно и он может заказать дорожки на выбранное время.
Серверная часть должна работать с БД. Если представить БД как таблицу, то я думаю сделать из 4-х столбцов: в первом - дата, во втором - время, в третьем - сколько дорожек свободно и в четвертом - фамилия. Из этого ясно, что должен осуществляться поиск по дате и времени, и если количество свободных дорожек в заданное время больше 0, то можно заказать дорожку, и в БД добавить новую запись с датой, временем, фамилией и оставшимся количеством свободных дорожек. Но проблема в том, что СУБД мы еще не изучали, а преподаватель требует, поэтому у меня много вопросов: какую БД в этом случае лучше использовать? Как осуществлять поиск по дате и времени? Как изменять в полях оставшиеся количество свободных дорожек в данное время? Я уже много всякого начитался в интернете, но все-равно смутно себе все представляю. И я не прошу все рассказать от "а" до "я", просто помогите советом, примером, литературой, которую нужно прочитать. Может как-то по другому посоветуете базу сделать, в общем буду рад всем советам
0
|
|
| 18.03.2013, 22:12 | |
|
Ответы с готовыми решениями:
42
Создание клиент серверного приложения Создание клиент-серверного приложения Создание клиент-серверного приложения в Delphi 7 |
|
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
|
|||
| 19.03.2013, 01:19 | |||
|
Fireblade,
Делите котлеты и мухи. Дорожки отдельно. Клиенты отдельно. И у вас не одна таблица должна быть. А еще у дорожек есть номера. Если я не хочу играть на 3 а хочу на 5. Фактически это ни к чему не приведет. Ну разве что за вас кто нибудь это сделает.
0
|
|||
|
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 27
|
||
| 19.03.2013, 01:49 [ТС] | ||
|
Преподу пофиг, он сам говорит, что типо образовательная программа плохая. Предлагает или самим изучать БД или же использовать типизированый файл.
0
|
||
|
2891 / 1926 / 208
Регистрация: 05.06.2011
Сообщений: 5,627
|
|
| 19.03.2013, 01:58 | |
|
СУБД, СУБД... Помешались все на этих СУБД.
При, скажем, гигабайте оперативки комп вполне будет работать с 2-4 гигами виртуальной памяти. Держи всю базу в оперативке, наладь простейший экспорт/импорт на диск (в начале и в конце работы), простейший лог для восстановления на случай вылета (для учебной задачи, собственно, ни к чему) и будет тебе щастье.
0
|
|
|
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
|
||||
| 19.03.2013, 03:28 | ||||
|
В данном случае проблема в том что задача дана неподготовленному лицу, который без необходимого мимнимума эту задачу решить не сможет. Времени на изучение этого минимума как всегда нет. Вот и получается то что получается. А СУБД или файл или таблички в памяти или объекты в памяти это уже не столь важно. Опять же даже при реализации на типизированном файле ты разделишь мух и котлеты по признакам в соответствии с принципами ООП независимо от уровня твоих знаний. А когда ты знаешь о написании программ лишь набор операторов и что делфи запыскается с ярлычка с цифиркой 7. То результат будет плачевным. Для ТС можно рекомендовать прочитать основы реляционных БД и их проектирования. Большое внимание к нормализации отношений. Ну и далее пытаться создать БД и милости просим к нам с вопросами о конкретных трудностях при реализации. Конечно можно вам собрать БД и отдать,но что вы с ней сможете сделать? Если как я понимаю у вас и навыков работы с БД при реализации интерфейса в Delphi тоже нет.
0
|
||||
|
2891 / 1926 / 208
Регистрация: 05.06.2011
Сообщений: 5,627
|
|
| 19.03.2013, 03:52 | |
|
Как я понял ТС, задача -- клиент-сервер. БД там не упоминается. Либо я неверно понял, либо таки двоичный файл для простой базы проще, чем изучать теорию реляционных БД.
0
|
|
|
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
|
|||
| 19.03.2013, 04:07 | |||
|
В вашем случае при реализации задачи придется идти либо путем многозвенной архитектуры (клиент(интерфейс) - сервер(логика) - файл(хранение)) либо частично писать свою СУБД которая будет работать с вашим типизированным файлом (Клиент(интерфейс, логика) - сервер БД(управление клиентскими сессиями основной функционал записи/чтения/блокировок/очередей доступа и т.п - файл(хранение))). Это при условии что вся логика по управлению блокировками, очередями записи и изменениями будет вынесена в отдельное приложение. Ну и так для разгона Клиент-сервер В вашем случае при работе с файлом и реализации всего мной описанного это будет скорее файл серверная архитектура. В плане что вся логика реализуется на клиенте. Так что как-то так.
0
|
|||
|
2891 / 1926 / 208
Регистрация: 05.06.2011
Сообщений: 5,627
|
|||
| 19.03.2013, 04:58 | |||
|
Один файл. Один сервер. Запустился, прочитал, ждёт клиентов. Дождался, выполнил запрос, ждёт следующего. В конце -- пишем из памяти всё обратно в файл. Задача -- учебная. Да хоть и реальная: объём базы -- какой? Я не знаком с работой боулинга, мож, глупость скажу. К примеру, 20 дорожек. Заказы по времени, кратные, скажем, 15 минутам. К примеру, 1000 клиентов (впрочем, справочник клиентов -- опять же, для учебной задачи -- можно и не делать). К примеру, на пару недель вперёд. Неужто в пару мегабайт не уложится? Вот это:
0
|
|||
|
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
|
|
| 19.03.2013, 05:20 | |
|
0
|
|
|
2891 / 1926 / 208
Регистрация: 05.06.2011
Сообщений: 5,627
|
||
| 19.03.2013, 05:49 | ||
|
0
|
||
|
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
|
|
| 19.03.2013, 06:15 | |
|
Да я про СУБД не говорю. С точки зрения архитектуры это получается 3 звенка в виду того что есть как минимум 2 звена отвечающих за соединение (клиент-сервер) и отдельное хранилище (файл/БД/еще кака неведома зверушка).
При отсутсвии 1 из все перестает работать.
0
|
|
|
2891 / 1926 / 208
Регистрация: 05.06.2011
Сообщений: 5,627
|
|
| 19.03.2013, 06:32 | |
|
Вот тут не понял. БД требует СУБД, которая будет третьим звеном; неведомая зверушка потребует неведомо чего; а файл тут при чём? Предлагаешь операционную систему считать третьим звеном?
Звено -- это ж отдельный процесс с отдельной программой, так? В моей схеме их два: клиент и сервер. Не вижу третьего.
0
|
|
|
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
|
|
| 19.03.2013, 07:12 | |
|
У SQLite и Access тоже нет. И тем не менее.
0
|
|
|
2891 / 1926 / 208
Регистрация: 05.06.2011
Сообщений: 5,627
|
|
| 19.03.2013, 07:38 | |
|
Тем не менее -- что? Если сервер работает с базой на SQLite/Access, то мы имеем трёхзвенку? Мы, похоже, очень по-разному понимаем эту самую трёхзвенку. Лень, честно говоря, искать, кто из нас прав. Хай будет трёхзвенка.
0
|
|
|
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
|
||
| 19.03.2013, 08:03 | ||
|
В принципе я чего то тоже запутался. А как рассматривать вариант 1С клиент - платформа - файловая БД?
0
|
||
|
2891 / 1926 / 208
Регистрация: 05.06.2011
Сообщений: 5,627
|
|
| 19.03.2013, 08:25 | |
|
Ну, я как-то считаю звеном отдельный процесс. Файловая БД отдельного процесса не запускает.
Хотя, вполне возможно, стоит считать асинхронные эээ... сущности, что ли. Тогда даже асинхронно читаемый файл -- звено. 1С 7 версии вообще одним процессом, как я понимаю, работает, 8 в руках не держал. Если вернуться к нашим баранам, я предлагал именно синхронное одноразовое чтение файла при запуске. А вот, к примеру, Access, да через асинхронные запросы -- ну, может, и заслуживает называться звеном.
0
|
|
|
0 / 0 / 0
Регистрация: 19.03.2013
Сообщений: 13
|
||
| 19.03.2013, 08:26 | ||
|
под такую задачу лучше использовать MySQL))) для клиент-серверную не ставят онлайн...слишком уязвимо...да и защита в копеечку влетит)))
0
|
||
|
2891 / 1926 / 208
Регистрация: 05.06.2011
Сообщений: 5,627
|
||
| 19.03.2013, 08:34 | ||
|
0
|
||
|
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
|
|
| 19.03.2013, 08:46 | |
|
iifat, я про 7 не говорю. Сугубо о восьмерке. У нее есть возможность работы в таком режиме.
Ну т.е мы приходим к синхронному чтению. И по факту получается некое подобие реализации проекта на DataSnap'е. Сервер один раз при запуске открывает наш файл и сидит с ним, пока клиент ему не пришлет запрос для каких нибудь манипуляций с данными. Необходима реализация управления сессиями и очередями записи. Ибо на лицо конфликт "кто последний тот и папа". Хотя зависит от реализации. Кстати технология DataSnap как раз для построение многозвенных архитектур. В случае с Access и SQLite у нас есть такое понятие как ядро СУБД Jet в случае Access и sqlite.dll во втором случае. Т.е. условно можем считать 3 звенкой. Хотя по факту вроде как файл-сервер. В нашем случае если мы реализуем весь функционал по интерпритации запросов клиента в серверном приложении , то вроде как и 2 звенка получается, а если мы вынесем логику в отдельную библиотеку и будем юзать функции из нее то уже вроде как появляется некий драйвер для работы с нашим файлом. В общем офтоп страшный,но с целью разобраиться. Как интерпритировать такой архитектурный прием. gosean, онлайн тут не причем это всего лишь термин указывающий на то, что система должна работать в реальном времени. Т.е. если один клиент занял дорожку, то второй ее занять уже не может. В принципе если мы реализуем функционал по управлению сессиями, то есть возможность от сервера отправлять команду на обновление каждому клиенту. С целью показать, что дорожка уже занята. И кстати в 1С 8 до сих пор существуют проблемы блокировок.
0
|
|
|
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
|
|
| 19.03.2013, 15:42 | |
|
Трехзвенка
БД-Сервер-Клиент
0
|
|
| 19.03.2013, 15:42 | |
|
Помогаю со студенческими работами здесь
20
Cкиньте, пожалуйста, примеры клиент-серверного приложения. Что нужно для создания клиент-серверного приложения. Для чего нужны потоки в работе клиент-серверного приложения? Нестабильная работа клиент-серверного приложения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|