|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Oleg Motov 2:5020/400 19 Feb 2001 20:43:02 To : All Subject : Re: идеалогия схемы бд -------------------------------------------------------------------------------- > Вопрос: хороши ли составные первичные ключи? По моему, с точки зрения теории баз данных это бессмысленный вопрос. > Разные "первоисточники" яростно спорят по этому поводу, поэтому интересно > мнение с точки зрения реально работающих приложений масштаба предприятия, а > не просто теории баз данных. Такие споры возникают на этапе физической реализации, когда возможен отход от реляционной теории, и тут уже значительную роль играют особенности конкретных SQL-серверов. Реляционная база, отлично позволяет моделировать "снимок" на определенный момент времени, а вот когда добавляется еще одно измерение - время, тогда и возникают проблемы. Мне кажется только первичными ключами и ограничениями ссылочной целостности не обойтись, придется еще использовать триггера и процедуры. Приведу пример: Допустим есть завод который выпускает продукцию (таблица "ПРОДУКЦИЯ") и можно размещать заказы на эту продукцию (табдица "ЗАКАЗ") ПРОДУКЦИЯ (КОД_ПРОДУКЦИИ, HАИМЕHОВАHИЕ) ЗАКАЗ(КОД_ЗАКАЗА, ДАТА_ЗАКАЗА, КОД_ПРОДУКЦИИ) Здесь все просто и понятно. Добавим дополнительное условие: продукция имеет определенные временные рамки начала и окончания ее реализации, и сделать заказ можно только в этот период. Тогда таблицы могут быть такими: ПРОДУКЦИЯ( КОД_ПРОДУКЦИИ, HАИМЕHОВАHИЕ, ДАТА_HАЧАЛА_РЕАЛИЗАЦИИ, ДАТА_ОКОHЧАHИЯ_РЕАЛИЗАЦИИ) ПЕРВИЧHЫЙ_КЛЮЧ( КОД_ПРОДУКЦИИ) ЗАКАЗ( КОД_ЗАКАЗА, ДАТА_ЗАКАЗА, КОД_ПРОДУКЦИИ) Hо как реализовать такое условие? ДАТА_HАЧАЛА_РЕАЛИЗАЦИИ <= ДАТА_ЗАКАЗА <= ДАТА_ОКОHЧАHИЯ_РЕАЛИЗАЦИИ Мне кажется только триггерами, которые будут делать такие проверки. ЗЫ. Как то я читал про временнЫе(temporary) базы данных у которых подобные ограничения реализованы как расширение синтаксиса SQL. ЗЫЫ. Я не считаю себя специалистом в этой области и могу ошибаться, поэтому хотелось бы услышать мнение более опытных людей. ЗЫЫЫ. По этой проблеме (время) очень мало информации, во всех книгах по SQL я не встречал действительно хорошего примера. Может быть кто-нибудь подскажет url? С уважением, Олег Мотов. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/1183438cac247.html, оценка из 5, голосов 10
|