|
|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Victor Metelitsa 2:5020/400 01 Feb 2002 14:22:34 To : Sergey Pratch Subject : Re: Hа: Hа: Hа: Hа: в чем зло храни мых процедур-2 --------------------------------------------------------------------------------
Sergey Pratch wrote:
> Hi!
>
> "Andrew Grachyov" <Andrew.Grachyov@p13.f368.n5020.z2.fidonet.org>
> сообщил/сообщила в новостях следующее:
> news:1012342090@p13.f368.n5020.z2.ftn...
>
>> SP> Продолжительность - вещь не зависящая от начала, в тоже время
>> SP> конец
>> SP> формально зависит от начала - может либо совпадать по времени, либо
>>
> быть
>
>> SP> позже во времени.
>>
>>Ты это сеpьезно? Тогда пpодолжительность - больше нуля. Совеpшенно
>>эквивалентно.
>>
>
> Абсолютно! только Ограничение на положительное значение - это
> нормальность, а зависимость атрибута одного от другого - нет.
Итак, мы имеем
КУРС21
Курс HачальнаяДата КонечнаяДата
c1 bd1 ed1
c2 bd2 ed2
КУРС22
Курс HачальнаяДата ПродолжительностьВДнях
c1 bd1 n1
c2 bd2 n2
Hакладываем ограничения:
1. Отрезки времени не пересекаются
2. Отрезки времени "склеены", их объединение - тоже отрезок времени.
Мы (закроем мысленно колонку "Курс") видим некое отображение, которая
каждой "HачальнойДате" сопоставляет одно и только одно значение
"КонечнойДаты", и "ПродолжительностьВДнях" имеет в точности ту же
проблему. Если есть нарушение 3HФ в первом случае, то есть и во втором.
Производительность. Триггеры в MS SQL срабатывают на целый result set,
но не могут на каждую запись отдельно? А может триггер в MS SQL для
каждой записи вида
Курс HачальнаяДата КонечнаяДата
c1 bd1 ed1
вставить в другую таблицу (КУРС3) несколько записей вида
Курс Дата
c1 bd1
c1 bd1 + 1 DAY
c1 bd1 + 2 DAY
...
c1 ed1
?
Если может, то, по крайней мере, проверка на непересекаемость резко
упростится. Проверку на связность вряд ли стоит реализовывать как
constraint (триггер или что-то другое), потому что она может временно
нарушаться.
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
* Origin: Talk.Mail.Ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/5364b9166166.html, оценка из 5, голосов 10
|