Я работаю в компании, в которой есть отдел управления проектами, которому необходимо периодически получать c обновления по электронной почте об изменениях, происходящих в нашей базе данных. База данных структурирована с достаточным количеством взаимосвязей внешних ключей, которые приводят к довольно сложному набору взаимосвязей, которые все находятся под таблицей «Проект».
Кроме того, у нас есть таблица «Контакт», которая во многих отношениях связана с нашей таблицей «Проект» через таблицу «Contact_Relationship». Эта таблица поддерживает тип отношения, а также саму связь. Предположим, что все остальные подтаблицы, подтаблицы и т. Д. находится в отношении один ко многим с таблицей над ней в иерархии.
См. Здесь слишком упрощенный пример:
Project
Contact_Relationship
Subtable1
Subsubtable1
Subtable2
Subsubtable2
Subsubtable3
Мне было поручено внедрить систему обмена сообщениями об обновлениях, которая периодически опрашивает изменения в записи проекта или в любом из его подпунктов и сообщений сообщение. Чтобы выполнить sh, мне нужно реализовать процедуру, чтобы получить конечную родительскую запись в таблице «Project» записи в любой из применимых таблиц, найти записи «Contact_Relationship», где тип «Менеджер проекта», а затем верните эти записи, чтобы я мог опубликовать сообщение об обновлении с соответствующими контактами. Теперь, учитывая, что структура subtables, sububtables, et c. в базе данных находится в постоянном развитии и, несомненно, увидит больше таблиц, добавленных в будущем, есть ли способ построить динамический запрос c, используя какое-то перекрестное применение к SQL административным таблицам сервера, чтобы получить конечную родительскую запись из какого-либо потенциального субтаблицы или субабаблета Неужели я здесь не в своей тарелке и есть гораздо более простое и очевидное решение? Я застрял в этой проблеме какое-то время и начинаю прибегать к срокам, чтобы реализовать все это, и я обеспокоен тем, что SQL знание, требуемое здесь, в настоящее время находится за пределами моей досягаемости.
В отличие от вопроса Получить Root родительский дочерний элемент в иерархической таблице , в этом случае я пересекаю отношения внешнего ключа между таблицами, а не родительско-дочерние отношения в той же таблице.