Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 19.11.2020
Сообщений: 12

Отслеживание событий в базе данных ms sql

16.02.2021, 15:30. Показов 3566. Ответов 26

Студворк — интернет-сервис помощи студентам
Добрый день! Прошу помочь!!! У меня имеется таблица Бронирование в которой содержатся столбцы (код бронирование(ПК), код клиента, код номера, дата начало, дата окончание) и таблица Номера (код номер(ПК), состояние(тип данных логический)).
1)Мне нужно сделать так чтобы, если наступает в записи бронирования, дата окончание ,то соответствующий ему номер освобождался , то есть в таблице номер соответствующая запись меняла бы значение в столбце состояние =0.
2) Допустим если бронь еще идет и эту запись удаляют ,то номер автоматически освобождается
Я делаю приложение на C# Windows Forms ,а База данных Microsoft SQL Server.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.02.2021, 15:30
Ответы с готовыми решениями:

Отслеживание работы сотрудников в базе данных
Добрый день, друзья. Есть несколько загвоздок с базой данных по работе сотрудников (складская). В базе есть таблица Resource Control,...

Лог событий в базе данных
Добрый день! Подскажите как в программе организовать "лог событий" в базе данных Access? кто что добавил, удалил, кто изменил (на что...

Обработка событий базе данных Спортивные мероприятия
В базе данных Спортивные мероприятия имеется форма Мероприятие, в которой отображается информация о соревнованиях, а также две подчиненные...

26
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
27.02.2021, 20:13
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Timur1200 Посмотреть сообщение
Насчет таблицы Номера там есть еще столбцы я указал туда цена, категория, но т.к эти столбцы никакого отношения к моей проблеме не имеют поэтому я о них и не писал
Вот это "четко описано" ?

Или может быть вот это ?
Цитата Сообщение от Timur1200 Посмотреть сообщение
Declare @date datetime = GETDATE()
SELECT код_бронирование,Бронирование.код_номера ,дата_начала,дата_ок ончание,цена
FROM Бронирование,Номер
WHERE @date > дата_окончание and Бронирование.код_номера = Номер.номер
Бог знает как Вы там спроектировали свою (или не свою) базу, но, судя по всему, не хватает каких-то сущностей. Например, сущности "бронирование". К которой можно было бы привязать "клиентов" и "номера". Добавить ей дату начала брони, дату конца брони и "флажок", который можно было бы устанавливать автоматически, создав службу на сервере, которая бы по истечении суток выставляла бы флажок "просрочено". Примерно так, как это делают билиновые системы.

Тогда в любой момент Ваше приложение могло бы выбирать то ли свободные номера (без записей о бронировании), то ли номера с закончившейся бронью, то ли забронированные номера.

Добавлено через 8 минут
У Вас в базе есть сущность "Клиент". На кой она упала ? Т.е. если в отеле за год пытались забронировать номер 100000 людей, из которых реально были клиентами отеля только 1000, то в базе будут сидеть все 100 тыщ ?

Сущность "Бронь" могла бы включать в себя скалярные атрибуты с информацией о клиенте (ФИО, документ и т.д.). "Сгоревшие" брони после удаления из базы выгребали бы за собою и фэйковых клиентов. База не держала бы мусора, таблицы были бы компактны и запросы на них "летали".

Добавлено через 6 минут
В Вашей базе имеет смысл сущность "Постоялец", которая бы описывала реального человека, селившегося в отеле. С реальными документами, оплатой, историей снятий номеров и т.д. Вот с такими "клиентами" есть смысл работать, например, давать скидки, кредиты и т.д.
В эту таблицу-справочник будет попадать те, кто не только бронировал номер, но и снимал его, и оплатил.

Если правильно выставить межтабличные связи, то получится логически завершенная модель БД. С которой уже имеет смысл разрабатывать какие-то приложения.

То, что Вы соорудили, вполне можно было бы держать в каком-нибудь Excel. И не морочить голову. Себе и людям.
0
0 / 0 / 0
Регистрация: 19.11.2020
Сообщений: 12
28.02.2021, 11:48  [ТС]
MsGuns, Что вы этим хотите сказать? Что БД, которая у меня спроектирована хрень? спорить не буду на счет этого, я далеко не профессионал в этом, да и вы не знаете какое у меня было задание, ведь суть не в этом, но я ожидал другой ответ...
Сущность
Цитата Сообщение от MsGuns Посмотреть сообщение
Например, сущности "бронирование". К которой можно было бы привязать "клиентов" и "номера". Добавить ей дату начала брони, дату конца брони и "флажок", который можно было бы устанавливать автоматически, создав службу на сервере, которая бы по истечении суток выставляла бы флажок "просрочено". Примерно так, как это делают билиновые системы.
Вроде как я писал про сущность бронирование и какие столбцы она имеет и связи между ними. очевидно что связь между таблицами бронирование и номера происходит через атрибут код_номера и бронирование с клиентами через код_клиента.
Но суть моего вопроса заключалось в том что бы, как можно реализовать автоматизированную систему. Например чтобы автоматически отслеживались свободные номера, чтобы если бронируются номера автоматом становились занятыми и их нельзя было забронировать и чтобы если бронь истекала этот номер автоматом становился свободным.
Я решил сделать что есть поля состояние в таблице номер. и через триггер реализовал, что номер автоматически переходит в состояние занятое, и теперь мне нужно чтобы это происходило обратно, т.е мне оставалось реализовать чтобы номера автоматом освобождались.
Моей задачей было спроектировать примерно такую БД, которая у меня сейчас имеется и ее оценивать насколько она правильно спроектирована в тех или иных стандартах не нужно!!!
Я четко написал что мне нужно реализовать. А голову морочите только вы, пишите то что не относится к моему вопросу.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
28.02.2021, 13:37
Цитата Сообщение от Timur1200 Посмотреть сообщение
что номер автоматически переходит в состояние занятое, и теперь мне нужно чтобы это происходило обратно,
Цитата Сообщение от MsGuns Посмотреть сообщение
Добавить ей дату начала брони, дату конца брони и "флажок", который можно было бы устанавливать автоматически, создав службу на сервере, которая бы по истечении суток выставляла бы флажок "просрочено". Примерно так, как это делают билиновые системы.
Вы или не читаете что Вам пишут, либо не в состоянии понять и вместо благодарности и уточняющих вопросов пишете вот это :
Цитата Сообщение от Timur1200 Посмотреть сообщение
А голову морочите только вы, пишите то что не относится к моему вопросу.
Вам что, тут кто-то чем-то обязан ? Вы считаете, что все должны кинуть свои дела, включить телепаторы, составить ясное себе понимание того, что Вам нужно, и выложить готовое решение. Чтобы Ваше Высокопревосходительство осталось довольно ?
1
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
28.02.2021, 14:09
Timur1200, свободные номера получаются как все номера в таблице номеров за исключением тех номеров, которые есть в таблице бронирования и у которых не истек срок действия.
1
0 / 0 / 0
Регистрация: 19.11.2020
Сообщений: 12
28.02.2021, 15:58  [ТС]
MsGuns,
Цитата Сообщение от MsGuns Посмотреть сообщение
Вам что, тут кто-то чем-то обязан ? Вы считаете, что все должны кинуть свои дела, включить телепаторы, составить ясное себе понимание того, что Вам нужно, и выложить готовое решение. Чтобы Ваше Высокопревосходительство осталось довольно ?
Вы и в правду нечем не обязаны. Вы отвечаете совершенно на добровольной основе, я не заставляю вас отвечать. Но это не значить что можно просто отвечать на "отвали" или в таком духе или отвечать на вопросы, которые сами себе придумали. Ну если для вас нормально объяснить это привилегия для королей, тогда вопрос зачем вы так распинаетесь перед мной и не ленитесь писать весь этот бред. Да и в целом ощущение будто вы абсолютно не поняли суть моей темы...
Мне кажется не читаете это вы. В таблице Бронирование у меня есть дата_начала и дата_окончание. Вы просите добавить столбец состояние. Но какой в этом смысл? я не вижу, ведь те же самые данные можно получить запросом, который вы упоминали, но мне это нафиг не нужно, я спрашивал совершенно другое, в заголовке темы я писал совершенно о другом. Да и тем более кто-то писал что это не нужно и неправильно. Совсем не понимаю логики...

Добавлено через 1 минуту
Igr_ok, Я согласен с вами. правда не знаю как это выразить через sql или какое ключевое слово использовать. Голову уже как неделю ломаю над своей проблемкой. Подскажите пожалуйста как через sql это реализовать.
0
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
28.02.2021, 19:34
Timur1200,
C#
1
2
3
4
SELECT Номер.*
FROM Номер
left join Бронирование on Бронирование.код_номера = Номер.номер
WHERE дата_окончание <GETDATE() and Бронирование.код_номера is null
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
01.03.2021, 07:19
Timur1200, если вам нужно отслеживать изменения в БД средствами самой БД, то курите это (средствами c# вы этого не сделаете): https://metanit.com/sql/sqlserver/12.2.php
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2021, 07:19

Обработка событий в Веб-базе данных Access
Здравствуйте форумчане! Объясните, пожалуйста, в чем причина? Я создал веб - базу данных в Access, и она в общем-то ничем не...

Кнопка для изменения имеющихся данных в DataGridView и базе данных Sql
Здравствуйте! Помогите пожалуйста приделать кнопку Edit, никак не хочет нормально работать, не может нормально подхватить Id с выделенной...

Как подключиться к базе данных на Wpf. База данных Sql Server
Раньше работал с Windows Worms, и то не долго. Щас хочу перейти на WPF. Я в этом деле еще новичок. Не могли бы вы объяснить как...

Отслеживание событий
Здравствуйте. Я только начинаю изучать jquery, поэтому прошу строго не судить. Я столкнулся с вопросом. Каким образом можно отследить...

Отслеживание событий
Есть варианты отслеживать события происходящие в программе при контакте с любыми элементами на форме, как при отладке, а так же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
После бана на Пикабу не работает авторизация аккаунта с Яндекса.
Hrethgir 09.07.2026
В частности https:/ / auto. ru/ logbook/ zapret-na-vozhdenie-posle-65-let_1cf28789-07b4-4c75-a2f7-4cd4edf9deeb тут хотел оставить комментарий такой Зрите в корень - монополизация на разработку программ. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru