Я надеюсь, что у этой замечательной группы могут быть какие-то предложения, чтобы помочь в трудной проблеме, с которой я столкнулся. Я работаю над базой данных Access для статистических отчетов о событиях из большого ежедневного пакетного цикла, который касается нескольких сотен приложений, которые, в свою очередь, отправляют несколько сотен тысяч событий для ежедневного запуска. Я работаю над тем, чтобы иметь возможность статистически собирать отчетную информацию по нескольким критериям ...
На данный момент база данных довольно проста. Две таблицы.
Данные приложения - таблица, содержащая запись для каждого отдельного приложения и всех связанных с ним данных (имя, разработчик, команда, подразделение, архитектор и т. Д. c). Приложения называются с 2 или 3-значными кодами, например, Приложение X может называться XYZ, приложение Y может называться YF.
Данные о событиях - собираются ежедневно, это список всех событий, которые были запущены. Он хранит информацию о событии, такую как имя события, дата, статус успеха, время выполнения, максимальный код завершения и т. Д. c.
события определяются в системе с соглашением об именах. События могут иметь имена до 8 символов. Первый символ всегда 'P' указывает на производственные события. Следующие 2 или 3 символа - это код приложения, а остальные символы могут быть любыми приложениями.
То, что я пытаюсь сделать, - это сопоставить каждую запись события с соответствующим приложением в таблице данных приложения (чтобы я мог затем сообщать обо всей информации о событии для определенного c приложения или даже о событиях для всех приложений, принадлежащих указанному c архитектору и т. д. c)
Моя проблема заключается в том, что в настоящее время единственным реальным способом определения взаимосвязи является анализ имени события и сравнение. Я пытаюсь взять 2-й, 3-й и 4-й символы и сравнить их с полем кода приложения таблиц данных приложения. Если найдено совпадение, это приложение, и я могу взять эту запись и добавить идентификатор данных приложения в качестве внешнего ключа для отношения. Если совпадения нет, используйте первые 2 символа для сопоставления, чтобы определить, является ли это 2-символьный код приложения, и снова введите внешний ключ для данных приложения в четной таблице данных.
Я пытался использовать запрос, сравнивающий имя события (проанализированный с серединными строками) и серию операторов IIF, но это впечатляюще взорвалось, и я просто не мог заставить работать сложный синтаксис. Моей следующей мыслью было сделать это в пакетном режиме с модулем vba, чтобы проанализировать имя события в каждой записи и найти в поле кода приложения данных приложения совпадение, а затем обновить поле внешнего ключа. Но я верю, что мне нужно было бы делать это регулярно, когда добавляются новые данные о ежедневных событиях.
Я даже не уверен, возможно ли то, что я спрашиваю, но я бы приветствовал любые мысли об автоматическом заполнении поля внешнего ключа на основе этих критериев или ручном решении, которое я мог бы запускать ежедневно, чтобы будет составлять огромные объемы данных.
Спасибо. Горд