Цитата: OlegON ➤ А вот заняться редизайном и оптимизацией структуры базы надо по любому, самим проще будет да и при текущем подходе коллапс все равно когда-нибудь наступит. Кому надо - справятся и с этой структурой, а вот добровольную стороннюю разработку, на которую вы и расчитываете, нынешнее положение вещей сильно тормозит.
Если говорить объективно, то написание пользовательского кода в УКМ мероприятие маловероятное совсем по другим причинам. Во-первых, это малоинтересно. И объясняется это положением системы о общей инфраструктуре. Система находится на самом нижнем уровне иерархии и если и нуждается в пользовательском коде, то только в части соединения УКМ и какой-то другой системы. Однако, если пользователь всё-таки преодолев все сложности был вынужден самостоятельно писать код для УКМ, значит мы как разработчики что-то прощёлкали и нам важно понять что. Во-вторых, использовать код который написан не нами для работы с деньгами людей очень опасно. Ведь с одной стороны в случае проблем ответственность ляжет на нас, а с другой стороны максимум что мы можем сделать это посетовать на чужой код.
Что касается структуры БД, сейчас построили механизм дизайнера отчётов, это даёт возможность создавать самостоятельно отчёты базируясь на наших данных. Важно отметить, не на наших структурах, и именно на данных. То есть для получения списка документов пользователь не пишет
select id, name from tram_tam_tam.trun_tun_tun
а так и пишет - get_document_list()
таким образом мы получаем прослойку, которая даст нам возможность сохранив такую сущность как id документа и его название, тем не менее сохранить себе свободу в выборе способа его хранения. А чтобы писать код на внутренней структуре, нужно чтобы разработчик её опубликовал, то есть таким образом пообещал, что структура не будет меняться.
то есть единственным устойчивым решением я вижу в создании публичных программных интерфейсов. с одной стороны, мы их публикуем и создаём себе геморрой по их поддержке, с другой стороны, если это будет востребовано, значит это снимет лишнее взаимодействие между подразделениями и ИТ отделы не обращаясь к нам, на опубликованных интерфейсах смогут делать что-хотят. Мы самим фактом публикации интерфейса гарантируем его неизменность.
Примеров тому даже сейчас существует несколько - есть интерфейс взаимодействия с платёжной системой, любой кто хочет использовать свои карты, со своими счетами может этим воспользоваться. Импорт экпорт данных - описано, можно пользоваться, от внутренней структуры не зависит! Система видеонаблюдения (а по факту просто нотификатор событий), подключайся, все данные описаны и фактически распрастраняются.
Я ещё раз хочу подчеркнуть, что желание писать со стороны важно по двум причинам - первое, это может означать нехватку чего-то важного, что можно вставить в продукт и второе, на основании этого можно сформировать интерфейс и опубликовать его.
Нет никакого желания в качестве такого интерфейса отдавать например БД. Во-первых для решения пользовательских задач структура данных может показаться слишком громоздка (кстати когда данные проходят через импорт экспорт для пользователя они представляются в сильно упрощённом виде)
. Во-вторых, за две ближайшие версии нам нужно решить две задачи, которые кардинально повлияют на структуру - отказаться от серверной схемы и перейти на распределённую и вторая разделить понятие документа в работе и документа в БД, там образом мы хотим сильно сократить количество таблиц и связей между ними. Если бы мы публиковали БД, этот путь был бы либо закрытым либо мы бы здорово подставили тех, кто что-то написал.