БД. Справочники. Примеры на MUMPS (Caché Object Script) 2
В прошлой статье мы рассмотрели пример справочника на MUMPS (Caché Object Script). Были разобраны структуры глобалов и метод retrieve. Мы научились простейшей операции — получению имени элемента по известному идентификатору. Рассматриваемые структуры были одноуровневыми. Опросы и комментарии, после статьи, показали, что тема в целом интересна. Сегодня рассмотрим примеры построения индексов для справочников. Все коды/идентификаторы/имена глобалов — настоящие. Основная идея данных статей — обмен знаниями/опытом разработки и проектирования живых баз данных. Вкратце напомню основные моменты первой части: cправочник это медленно меняющаяся информация; retrieve — быстрая операция; название элемента справочника меняется в одном месте; Глобал имеет вид: ^ГлобальнаяПеременная («индекс1», «индекс2»,…, «индексN»)=«значение» По просьбе 4dmonster в примерах будут публиковаться полные версии команд. (wrtie вместо w и т.д.) Освежим в памяти имеющиеся глобалы с данными:^Dictionary («Vehicle», «TransmissionType»,1,0, «UpdateTime»)=»62086,66625» ^Dictionary («Vehicle», «TransmissionType»,1,0, «uid»)=888 ^Dictionary («Vehicle», «TransmissionType»,2,0, «UpdateTime»)=»62086,66625» ^Dictionary («Vehicle», «TransmissionType»,2,0, «uid»)=888
^NameDictionaryElement (1, «partUri»,0)=«akp» ^NameDictionaryElement (1, «partUri»,0, «UpdateTime»)=»62086,66625» ^NameDictionaryElement (1, «ru»,0)=«АКП» ^NameDictionaryElement (1, «ru»,0, «UpdateTime»)=»62086,66625» ^NameDictionaryElement (2, «partUri»,0)=«meh» ^NameDictionaryElement (2, «partUri»,0, «UpdateTime»)=»62086,66625» ^NameDictionaryElement (2, «ru»,0)=«МЕХ» ^NameDictionaryElement (2, «ru»,0, «UpdateTime»)=»62086,66625» Глобал ^Dictionary — содержит все элементы справочников и их свойства, глобал ^NameDictionaryElement — содержит названия элементов справочников на всех языках.Создать глобалы Ctr+С/VКоманда set — задаёт значение переменной (локальной или глобальной).set ^Dictionary («Vehicle», «TransmissionType»,1,0, «UpdateTime»)=»62086,66625» set ^Dictionary («Vehicle», «TransmissionType»,1,0, «uid»)=888 set ^Dictionary («Vehicle», «TransmissionType»,2,0, «UpdateTime»)=»62086,66625» set ^Dictionary («Vehicle», «TransmissionType»,2,0, «uid»)=888 set ^NameDictionaryElement (1, «partUri»,0)=«akp» set ^NameDictionaryElement (1, «partUri»,0, «UpdateTime»)=»62086,66625» set ^NameDictionaryElement (1, «ru»,0)=«АКП» set ^NameDictionaryElement (1, «ru»,0, «UpdateTime»)=»62086,66625» set ^NameDictionaryElement (2, «partUri»,0)=«meh» set ^NameDictionaryElement (2, «partUri»,0, «UpdateTime»)=»62086,66625» set ^NameDictionaryElement (2, «ru»,0)=«МЕХ» set ^NameDictionaryElement (2, «ru»,0, «UpdateTime»)=»62086,66625» А теперь посмотрим как может быть устроен индекс справочника, и разберёмся для чего он нужен.Читать дальше →