|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Kurkov Mihail 2:5020/175.2 03 Oct 2001 18:22:07 To : All Subject : Отслеживание изменений данных. -------------------------------------------------------------------------------- Здравствуйте, уважаемые! Возникла тут задача написания небольшой кадровой системы. В связи с этим захотелось иметь механизм отслеживания изменений данных. К примеру есть сущность Персона с аттрибутом Фамилия. До 1.01.2001 была фамлия Петров, а потом стала Иванов. Соответсвенно в документах, которые ссылаются на Персону, датированных до 1.01.2001 должна появляться Петров, а после Иванов. Этот механизм по идее должен распространятся и на другие атрибуты и другие сущности. Т.е. измениться может и адрес и паспорт и занимемая должность. Hо что-то я не могу подобрать нормальную структуру для реализации подобного механизма. В голову приходит что-то уж совсем абстрактное, типа: table OBJECTS(ObjId int, ObjClass id, ParentObjId int) table ATTRIBUTES( ObjId int, ATTRIBId int, FROM_DATE datetime, TO_DATE datetime, Val_type int, Val_Int int, Val_char varchar, Val_Date datetime, Val_Money money) Это конечно сильно утрировано, но смысл должен быть понятен. Я никогда с подобными схемами не работал - по-моему это не вполне реляционный подход и с его реализацией могут возникнуть проблемы. По-этому хочется спросить у уважаемых мной посетителей форума - если кто реализовывал подобные схемы, какие тут есть подводные камни (в частности возможность построения эффективных запросов с условиями по нескольким атрибутам), стоит ли вообще за это браться, или другие предложения по реализации механизма отслеживания изменений данных. Сервер разработки MS SQL 6.5 Курков Михаил. --- ifmail v.2.15 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/3300eec7c3fa.html, оценка из 5, голосов 10
|