Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ограничение на уникальность группы столбцов  [new]
Tap0chek
Member

Откуда:
Сообщений: 27
Здравствуйте, у меня есть таблица расписания занятий и мне необходимо поставить ограничение, чтобы не могло получиться так, что бы в одно и тоже время в аудитории или класса или у преподавателя было два урока. Я попробовал использовать Unique, но видимо что-то до конца не понял в принципе его работы, так как он не работает. Подскажите, как правильно сделать.
CREATE TABLE [dbo].[Raspisanie] (
    [Data]             DATETIME   NOT NULL,
    [Class_id]         NCHAR (3)  NOT NULL,
    [timelane_subject] NCHAR (10) NOT NULL,
    [timelane_prepod]  NCHAR (40) NOT NULL,
    [Audience_id]      INT        NOT NULL,
Constraint [uncon] Unique (Data, Class_id, timelane_prepod, timelane_subject, Audience_id)
	
);
28 май 14, 22:24    [16088407]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение на уникальность группы столбцов  [new]
Glory
Member

Откуда:
Сообщений: 104751
Tap0chek
или класса или у преподавателя

В одном Constraint Unique не бывает ИЛИ. Там все поля проверяются на И
28 май 14, 22:33    [16088423]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение на уникальность группы столбцов  [new]
Tap0chek
Member

Откуда:
Сообщений: 27
Ну имелось ввиду, что не может быть в таблице одновременно записей такого плана:
18,08 8:00 Математика Игорь Сергеевич 101ауд
18,08 8:00 История Зинаида Павловна 101ауд
18.08.800 Русский Игорь Сергеевич 102ауд
28 май 14, 22:38    [16088446]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение на уникальность группы столбцов  [new]
Glory
Member

Откуда:
Сообщений: 104751
Tap0chek
Ну имелось ввиду, что не может быть в таблице одновременно записей такого плана:

Ваша ограничение не делается через Constraint
Потому что ваше ограничение требует проверки других записей по преподавателю/классу
28 май 14, 22:47    [16088490]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение на уникальность группы столбцов  [new]
Tap0chek
Member

Откуда:
Сообщений: 27
Glory
Tap0chek
Ну имелось ввиду, что не может быть в таблице одновременно записей такого плана:

Ваша ограничение не делается через Constraint
Потому что ваше ограничение требует проверки других записей по преподавателю/классу

Тогда через что оно делается ?
28 май 14, 22:54    [16088509]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение на уникальность группы столбцов  [new]
Glory
Member

Откуда:
Сообщений: 104751
Tap0chek
Тогда через что оно делается ?

через триггер
28 май 14, 22:55    [16088515]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение на уникальность группы столбцов  [new]
Tap0chek
Member

Откуда:
Сообщений: 27
Glory,

Это плохо, потому, как до тригеров, я совсем еще не дошел. А чем будет отличаться проверка в тригерах от какой-нибудь проверки с помощью Check ?
28 май 14, 23:10    [16088563]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение на уникальность группы столбцов  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Tap0chek
Ну имелось ввиду, что не может быть в таблице одновременно записей такого плана:
18,08 8:00 Математика Игорь Сергеевич 101ауд
18,08 8:00 История Зинаида Павловна 101ауд
18.08.800 Русский Игорь Сергеевич 102ауд


Сделайте три констрейна, дата-класс, дата-аудитория, дата-преподаватель
29 май 14, 00:15    [16088740]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение на уникальность группы столбцов  [new]
Tap0chek
Member

Откуда:
Сообщений: 27
WarAnt,
Я думал об этом, но нужно ограничение еще и на предмет в этом случае, но у нас может быть две математики у разных классов в разных аудиториях.
29 май 14, 00:33    [16088776]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение на уникальность группы столбцов  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Tap0chek
WarAnt,
Я думал об этом, но нужно ограничение еще и на предмет в этом случае, но у нас может быть две математики у разных классов в разных аудиториях.


И в чем тут проблема?
29 май 14, 01:21    [16088846]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение на уникальность группы столбцов  [new]
Tap0chek
Member

Откуда:
Сообщений: 27
Хм... я щас еще раз прикинул, вы правы, так тоже будет работать, спасибо!
29 май 14, 01:27    [16088851]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить