Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 25

Не могу сделать триггер для составления правильного расписания графика

16.05.2012, 16:04. Показов 1985. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача такова:
есть таблица график тренировок, в котором: id_object, id_section, id_trener, start_time, end_time. Надо чтобы триггер не позволял перекрещивание времени начала и конца тренировки на одном и том же объекте, т.е. на одном и том же объекте две разных секции не занимались в одно время и не мешали друг другу. Спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.05.2012, 16:04
Ответы с готовыми решениями:

Макрос для составления расписания
Есть ли среди вас умельцы которые осилят создание макроса для следующей задачи Есть 3 таблицы. И нужно что бы макрос на...

Программа для составления расписания занятий
Нужна программа для составления расписания занятий на LAZARUS.

Генетический алгоритм для составления расписания
Здравствуйте. В генетическом алгоритме для составления расписаний что берется в качестве особи, хромосомы и гена. Как происходит...

11
16.05.2012, 17:08

Не по теме:

Уже и сюда ученики попёрли, как в разделе "C# для новичков" ((

0
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 25
16.05.2012, 17:11  [ТС]
Цитата Сообщение от Leax Посмотреть сообщение

Не по теме:

Уже и сюда ученики попёрли, как в разделе "C# для новичков" ((

аа, ну ты типа бывалый) блесни умом, подскажи мне, неразумному, что и как в таком случае
0
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
16.05.2012, 17:12
Цитата Сообщение от wassaby_ Посмотреть сообщение
аа, ну ты типа бывалый) блесни умом, подскажи мне, неразумному, что и как в таком случае
я лучше в это время денег заработаю, чем халявщикам помогать
0
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 25
16.05.2012, 17:14  [ТС]
Цитата Сообщение от Leax Посмотреть сообщение
я лучше в это время денег заработаю, чем халявщикам помогать
ты в это время тут сидишь
0
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
16.05.2012, 17:20
Цитата Сообщение от wassaby_ Посмотреть сообщение
ты в это время тут сидишь
я принципиально помогаю только тем, кто сам хоть что то делает, а не "сделайте мне всё за спасибо"
1
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 25
16.05.2012, 17:27  [ТС]
Цитата Сообщение от Leax Посмотреть сообщение
я принципиально помогаю только тем, кто сам хоть что то делает, а не "сделайте мне всё за спасибо"
в таком случае ты ошибаешься, если думаешь, что я "халявщик" не пытался это сделать:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
CREATE TRIGGER graf_tren1
ON graf_trenirovok
FOR INSERT, UPDATE
AS
DECLARE @time1 INT,
        @end_time INT,
        @start_time INT,
        @i_obj INT,
        @gt_obj INT
BEGIN
SELECT @time1=datepart(hh,i.start_time),
       @end_time=datepart(hh,gt.end_time),
       @start_time=datepart(hh,gt.start_time),
       @i_obj=i.id_obj,
       @gt_obj=gt.id_obj
FROM inserted i 
JOIN graf_trenirovok gt ON i.id_obj=gt.id_obj
IF @time1 BETWEEN @start_time AND @end_time
AND @i_obj=@gt_obj
BEGIN
ROLLBACK TRAN
RAISERROR ('В это время объект занят другой секцией',16,10)
END
END
Конечно, теперь то скажешь небось, что после такого отношения ты снова из принципа не будешь помогать)
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
16.05.2012, 17:52
Думается мне, составления графиков (расписаний) скорее задача оптимизации.
В такой постановке ты не учитываешь много признаков. Например, в плане оптимальной загруженности объектов для тренировок
0
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 25
16.05.2012, 17:53  [ТС]
Цитата Сообщение от pincet Посмотреть сообщение
Думается мне, составления графиков (расписаний) скорее задача оптимизации.
В такой постановке ты не учитываешь много признаков. Например, в плане оптимальной загруженности объектов для тренировок
спасибо, но суть задачи пока только в расписаний времени, а загруженность я сам разберу
0
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
16.05.2012, 17:58
Попробуй так, не могу проверить:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TRIGGER graf_tren1
ON graf_trenirovok
FOR INSERT, UPDATE
AS
    IF EXISTS(
        Select 1 from graf_tren1 g
            join inserted i on g.id_object = i.id_object
            where g.id_section <> i.id_section and
                ((i.start_time Between g.start_time and g.end_time) Or 
                 (i.end_time Between g.start_time and g.end_time))
    )
    BEGIN
      ROLLBACK TRAN -- может эта строка и не нужна, т.к. RaiseError в триггере не дает вставлять неверные данные при редактировании
      RAISERROR ('В это время объект занят другой секцией',16,10)
    END
З.Ы.: Почему бы сразу не выкладывать свои наработки?
1
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
16.05.2012, 18:14
Цитата Сообщение от wassaby_ Посмотреть сообщение
спасибо, но суть задачи пока только в расписаний времени, а загруженность я сам разберу
так в том вся и штука, что иногда выгоднее провести 2 занятия по 1 часу, чем одно на полтора и полчаса простоять.
0
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 25
16.05.2012, 18:18  [ТС]
Цитата Сообщение от wassaby_ Посмотреть сообщение
в таком случае ты ошибаешься, если думаешь, что я "халявщик" не пытался это сделать:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
CREATE TRIGGER graf_tren1
ON graf_trenirovok
FOR INSERT, UPDATE
AS
DECLARE @time1 INT,
        @end_time INT,
        @start_time INT,
        @i_obj INT,
        @gt_obj INT
BEGIN
SELECT @time1=datepart(hh,i.start_time),
       @end_time=datepart(hh,gt.end_time),
       @start_time=datepart(hh,gt.start_time),
       @i_obj=i.id_obj,
       @gt_obj=gt.id_obj
FROM inserted i 
JOIN graf_trenirovok gt ON i.id_obj=gt.id_obj
IF @time1 BETWEEN @start_time AND @end_time
AND @i_obj=@gt_obj
BEGIN
ROLLBACK TRAN
RAISERROR ('В это время объект занят другой секцией',16,10)
END
END
Конечно, теперь то скажешь небось, что после такого отношения ты снова из принципа не будешь помогать)
Спасибо) ща просмотрю

Добавлено через 2 минуты
Цитата Сообщение от Leax Посмотреть сообщение
Попробуй так, не могу проверить:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TRIGGER graf_tren1
ON graf_trenirovok
FOR INSERT, UPDATE
AS
    IF EXISTS(
        Select 1 from graf_tren1 g
            join inserted i on g.id_object = i.id_object
            where g.id_section <> i.id_section and
                ((i.start_time Between g.start_time and g.end_time) Or 
                 (i.end_time Between g.start_time and g.end_time))
    )
    BEGIN
      ROLLBACK TRAN -- может эта строка и не нужна, т.к. RaiseError в триггере не дает вставлять неверные данные при редактировании
      RAISERROR ('В это время объект занят другой секцией',16,10)
    END
З.Ы.: Почему бы сразу не выкладывать свои наработки?
Спасибо за помощь. Ща попробую.

З.Ы. В след раз буду)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2012, 18:18
Помогаю со студенческими работами здесь

Генетический алгоритм для составления расписания
В генетическом алгоритме для составления расписаний что берется в качестве особи, хромосомы и гена. Как происходит скрещивание? Если...

Нужно написать программу для составления расписания
всем привет) нужно сделать программу для составления расписания в универе, к примеру для одной - двух групп на неделю, и все это потом...

Вычисление дней недели для составления расписания
Доброе время суток! Буквально несколько дней назад начал жадно вгрызаться в мануалы по С++ и сейчас меня посетила идея: А что, если я...

Разработка математической модели и программного обеспечения для задач составления расписания в вузе
Всем привет! Нужно написать прогу по следующей теме: &quot;Разработка математической модели и программного обеспечения для задач составления...

Алгоритм составления расписания
какой из алгоритмов можно применить к решению следующей задачи Дано: 1. Множество операций J={J1,...,JN}. 2. t - время на выполнение...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru