Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2021, 13:29   #1
exzupery
Новичок
Джуниор
 
Регистрация: 24.01.2011
Сообщений: 2
По умолчанию Дилемма с отсутствием данных в справочнике при загрузке журнала

Всем добрый день! Возникла такая ситуация, когда приходят данные из смежной системы со справочными данными, которые у нас лежат в отдельных справочниках, но при этом таких данных в этих справочниках не было. Справочники обновились через 8 часов(уж по какой причине это произошло так а не иначе - хз, и со слов руководителя - это абсолютно нормальная практика и менять там никто ничего не будет). Получилось так, что в журнал записались данные без ссылок на справочные данные, таким образом ценность этих данных = 0.
Немного покумекав, накидал 3 возможных варианта обхода проблемы :
1) Не обрабатывать те данные, которые не имеют ссылок на справочники, а складывать их в некий буфер и обрабатывать по факту прихода справочных данных.
2) Создавать фейковые строки для справочников, подставлять их в журнал, а по приходу справочных данных обновлять строки в справочниках
3) Создавать на каждый справочник по одной записи(типа системной) и привязывать к ней, пока не пришли справочные данные. После прихода перепривязывать к реальным справочным данным.

Буду признателен, если кто-то предложит свой вариант, или раскритикует мои)
P.s. Приложил примерную схему(в журнал данные грузятся, а на справочники ссылаются)
Изображения
Тип файла: png dsBuffer.bmp.png (23.5 Кб, 13 просмотров)

Последний раз редактировалось exzupery; 10.11.2021 в 16:43. Причина: Добавлена примерная схема для понимания
exzupery вне форума Ответить с цитированием
Старый 11.11.2021, 08:13   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

не очень понятно, хотите сказать, что при записи в журнал уже фигурируют данные из обновленного справочника? Как это возможно?

в порядке приоритета я бы сделал следующее?
1. все же попытался разобраться почему так происходит и как это исправить
2. допустим что п 1 не вариант, надо понимать в каком виде приходят данные в журнал

если БД грамотная, поля справочников должны иметь внешний ключ со справочником, и соответственно при попытке записать в это поле что-то не имеющееся в справочнике - давать жесткий облом не записывая записи в журнал.

опять же надо понимать что приходит - индекс из "обновленного" справочника или само значение справочника, то есть если поле цвет, что приходит - номер цвета из справочника, или прямо само новое название "синий" например?
ADSoft вне форума Ответить с цитированием
Старый 11.11.2021, 10:17   #3
exzupery
Новичок
Джуниор
 
Регистрация: 24.01.2011
Сообщений: 2
По умолчанию

ADSoft,
Обновление справочников и журнала носит асинхронный характер, и мы не можем завязываться на то, что придут данные в журнал, когда справочники будут уже обновлены.
Внешние ключи на справочники в журнале присутствуют, но они NULLABLE на данный момент.
Формально в рамках журнала приходит идентификатор справочника из внешней системы. Мы его не считаем уникальным в рамках этой системы и создаем свой ключ справочника.
exzupery вне форума Ответить с цитированием
Старый 11.11.2021, 14:19   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

раз такая пъянка - нахер внешние ключи, пишите те значения которые вам передаются и похер

журнал потом все нормально отобразит - когда справочники обновятся

а пока у вас нет данных из справочника - вы полюбому ничего адекватного по этим данным в журнале не сможете отобразить))) .. тип делать проверку - если данный в справочнике нет - писать - "данные в пути" ))))
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TThread (потоки) при загрузке файлов в базу SQL Server - как загрузить файл размером 100 мб в базу данных SQL Server, обработать и выгрузить его из базы? artemavd SQL, базы данных 7 16.11.2018 09:19
Как сделать прогресс-бар при загрузке данных ADOTable в C++ Builder? avpdnepr C++ Builder 2 17.12.2016 13:19
Проблема при загрузке ПК. Натулёк Операционные системы общие вопросы 2 06.09.2010 11:29
ф1 задалбала при загрузке!! Motor1366 Помощь студентам 2 06.06.2010 16:36
Выбор ОС при загрузке ПК [Smarik] Операционные системы общие вопросы 12 23.03.2009 10:59