|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Sergey Mokhov 2:5020/400 19 Feb 2001 19:07:26 To : All Subject : Re: идеалогия схемы бд -------------------------------------------------------------------------------- > Hо отдельная проблема заключается и в том, что сущность "человек" также > может меняться по времени: > событие "человек сменил фамилию". > Вариант решения - составной первичный ключ "? человека + Дата начала + Дата > окончания" Hе так. "Nчеловека + Дата начала". Дата окончания - довесок. Требуется еще: 1) констрайнт на (Дата окончания >= Дата начала). 2) триггера на insert&update, проверяющие факт непересечения временнЫх интервалов разных записей с одинаковыми Nчеловека. Возможно, потребуется также контролировать факт отсутствия временнЫх разрывов (т.е., человек не может не иметь фамилии даже короткое время). > Вопрос: хороши ли составные первичные ключи? Ответ (DB2) - на практике - никаких проблем. Использую ключи, в которых до десятка полей (типично: два-три). Писать соединения, конечно, более хлопотно, чем при одном поле в ключе. Hо на производительности это не сказывается. -- Sincerely Yours, S. Mokhov --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/54944bcfbcf5.html, оценка из 5, голосов 10
|