powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ERwin reverse engineer - не все связи FK извлекаются
6 сообщений из 6, страница 1 из 1
ERwin reverse engineer - не все связи FK извлекаются
    #36872927
kbowner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Не подскажете ли, кто-нибудь, пожалуйста - почему наблюдается такая картина?
При reverse engineer извлекается только часть ограничений внешнего ключа (FK)?
Поля сами все извлекаются, но связи между ними - нет. Причем не для всех таблиц, а только для некоторых таблиц.
Пробовал с разными настройками "infers PK/FK Names/Indexes" и без - ничего не меняется.
БД - DB2 9.5 LUW, соединяется через ODBC. Версия ERwin - 7.3.4 SP1.

Буду очень признателен за помощь/советы, спасибо.
...
Рейтинг: 0 / 0
ERwin reverse engineer - не все связи FK извлекаются
    #36873038
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kbowner wrote:

> Не подскажете ли, кто-нибудь, пожалуйста - почему наблюдается такая картина?
> При reverse engineer извлекается только часть ограничений внешнего ключа
> (FK)?

> Поля сами все извлекаются, но связи между ними - нет. Причем не для всех
> таблиц, а только для некоторых таблиц.
> Пробовал с разными настройками "infers PK/FK Names/Indexes" и без -
> ничего не меняется.

infers не ставь. Это настройка чтобы не тащить FK из базы, а выдумывать их
самому на основе имён полей, атрибутов и прочих кабалистических признаков.

> БД - DB2 9.5 LUW, соединяется через ODBC. Версия ERwin - 7.3.4 SP1.

Не работал с DB2, может быть это -- недостаток прав на эти самые таблицы.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ERwin reverse engineer - не все связи FK извлекаются
    #36873051
kbowner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за то, что удостоили внимания мой вопрос.
Пол-дня убил на эксперименты. В итоге выяснил, может кому будет интересно.
У родительской таблицы для PK не было отдельного индекса. Было много составных индексов, куда входило поле с PK.
В итоге, ERwin, видимо, брал индекс какой-понравится (тут вот не нашел закономерности) и отображал как составной PK (на основании одного из составных индексов).
Соответственно, связь FK-PK не извлекалась.
Как только я добавил уникальный индекс для столбца с PK родительской таблицы отдельный - проблема исчезла, FK constraint появился!
...
Рейтинг: 0 / 0
ERwin reverse engineer - не все связи FK извлекаются
    #36873058
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kbowner wrote:
> Пол-дня убил на эксперименты. В итоге выяснил, может кому будет интересно.
> У родительской таблицы для PK не было отдельного индекса. Было много
> составных индексов, куда входило поле с PK.

Кхм... какбэ, обычно FK не может существовать, если в родительской таблице
нет PK или уникального индекса, на который оно ссылается.
И обычно это PK.

> В итоге, ERwin, видимо, брал индекс какой-понравится (тут вот не нашел
> закономерности) и отображал как составной PK (на основании одного из
> составных индексов).
> Соответственно, связь FK-PK не извлекалась.

Может у вас там вообще PK не было в таблице ?

> Как только я добавил уникальный индекс для столбца с PK родительской
> таблицы отдельный - проблема исчезла, FK constraint появился!

Ну хорошо что так.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ERwin reverse engineer - не все связи FK извлекаются
    #36875374
kbowner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эх, к сожалению я поторопился с выводами.
Это сработало для одного constraint'а. Для других - не помогает. Индексы созданы, PK и FK есть.
ERwin упрямо не хочет вытаскивать связи. Помогло вот полное пересоздание PK-ограничения родительской таблицы (т.к. удалить индекс от PK нельзя вроде, + пришлось пересоздавать FK у дочерней таблицы).
Но это не выход, т.к. есть такие таблицы-справочники, на которые ссылаются по десятку таблиц. И пересоздавать все эти ограничения FK очень долго и сложно....
Проверял, по системным таблицам в SYSCAT (REFERENCES, INDEXES), чем же одни индексы и PK отличаются от других, рабочих. Отличий нет, только местами - отличия в пользователе, который их создавал. Права всем давал одинаковые. Если пересоздать под совершенно другим юзером PK+FK - ERwin начинает работать.
В общем, проблема все еще актуальна, к сожалению...
...
Рейтинг: 0 / 0
ERwin reverse engineer - не все связи FK извлекаются
    #36875458
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kbowner wrote:

> В общем, проблема все еще актуальна, к сожалению...

Думаю, там уже какая-то DB2-шная специфика прёт.

Попробуй понять, как ErWin, на основе какой информации,
вытаскивает FK (и PK заодно) и проверь, есть ли она
там. Может он тащит криво (тогда увы) может схема в
БД покоцанная. Некоторые СУБД имеют отдельный опционально
поддерживаймый каталог метаинформации, не обязательный
для заполнения в мирной жизни. МОжет он его использует.

ну и прочитай доку наконец, может там есть как он именно
на DB2 их вытаскивает.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ERwin reverse engineer - не все связи FK извлекаются
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]