2011-12-20 2 views
0

У меня особенная ситуация. В моей базе данных MySQL у меня около 90 нечетных таблиц, и большинство таблиц были проиндексированы (мы используем INNODB). Некоторые из таблиц, имеющих ссылку как это:Список перечней связанных таблиц

A -> B -> C-> D-> E

Есть ли способ, где в можно найти список всех суб-ребенка таблицы, когда у меня есть только таблица A и E для работы? У меня есть механизм построения динамических запросов, и для этой цели я перечисляю пользователей со списком таблиц, и в данной ситуации, как указано выше, необходимо получить требуемую информацию только из таблицы «А» и «Е», без таблицы «B», «C» и «D» выбираются пользователем поиска.

Таблицы связаны обычным образом. Каждая таблица связана с другой посредством соответствующего ограничения внешнего ключа.

Например. Таблица A (транзакция) Id, Trxn-Дата, Сумма

Таблица B (транзакция заголовок) Id, Agent_Id (ФК с Agent_Profile), Upd_Time, Trnx_Hdr_ID (ФК таблице А)

В таблице С (Agent_Profile) Id, Prof_ID (ФК профиль)

в таблице D (профиль) ID, Pers_Info_Id (ФК с personal_info)

Таблица E (personal_info) Id, Имя, Фамилия

Пользователь выбирает Trxn_Date, FirstName, LastName.

Как я могу получить информацию таблицы суб-сшитый, когда выбранные таблицы (в данном случае), случается только сделка и personal_info.

+0

Эти таблицы склеены внешними ключами? –

ответ

0

Кажется, что вы можете объединить несколько из этих таблиц на 2-3 стола, не теряя при этом ничего полезного. Таблицы C D и E просто содержат столбцы, указывающие на другие таблицы.

Если изменено, запрос с trxn_date и первым/последним будет проще.

+0

На данный момент структуры не могут быть реструктурированы. Он работает в течение длительного времени. То, что я добавил в описании, - это всего лишь несколько. Фактически таблицы имеют больше данных, для краткости я только что добавил несколько столбцов. Мое требование - получить список всех промежуточных таблиц между A и E. Получите ли вы это требование? –