|
|
|
ERwin reverse engineer - не все связи FK извлекаются
|
|||
|---|---|---|---|
|
#18+
Добрый день. Не подскажете ли, кто-нибудь, пожалуйста - почему наблюдается такая картина? При reverse engineer извлекается только часть ограничений внешнего ключа (FK)? Поля сами все извлекаются, но связи между ними - нет. Причем не для всех таблиц, а только для некоторых таблиц. Пробовал с разными настройками "infers PK/FK Names/Indexes" и без - ничего не меняется. БД - DB2 9.5 LUW, соединяется через ODBC. Версия ERwin - 7.3.4 SP1. Буду очень признателен за помощь/советы, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 17:49 |
|
||
|
ERwin reverse engineer - не все связи FK извлекаются
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 18:46 |
|
||
|
ERwin reverse engineer - не все связи FK извлекаются
|
|||
|---|---|---|---|
|
#18+
Спасибо за то, что удостоили внимания мой вопрос. Пол-дня убил на эксперименты. В итоге выяснил, может кому будет интересно. У родительской таблицы для PK не было отдельного индекса. Было много составных индексов, куда входило поле с PK. В итоге, ERwin, видимо, брал индекс какой-понравится (тут вот не нашел закономерности) и отображал как составной PK (на основании одного из составных индексов). Соответственно, связь FK-PK не извлекалась. Как только я добавил уникальный индекс для столбца с PK родительской таблицы отдельный - проблема исчезла, FK constraint появился! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 19:02 |
|
||
|
ERwin reverse engineer - не все связи FK извлекаются
|
|||
|---|---|---|---|
|
#18+
kbowner wrote: > Пол-дня убил на эксперименты. В итоге выяснил, может кому будет интересно. > У родительской таблицы для PK не было отдельного индекса. Было много > составных индексов, куда входило поле с PK. Кхм... какбэ, обычно FK не может существовать, если в родительской таблице нет PK или уникального индекса, на который оно ссылается. И обычно это PK. > В итоге, ERwin, видимо, брал индекс какой-понравится (тут вот не нашел > закономерности) и отображал как составной PK (на основании одного из > составных индексов). > Соответственно, связь FK-PK не извлекалась. Может у вас там вообще PK не было в таблице ? > Как только я добавил уникальный индекс для столбца с PK родительской > таблицы отдельный - проблема исчезла, FK constraint появился! Ну хорошо что так. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 19:07 |
|
||
|
ERwin reverse engineer - не все связи FK извлекаются
|
|||
|---|---|---|---|
|
#18+
Эх, к сожалению я поторопился с выводами. Это сработало для одного constraint'а. Для других - не помогает. Индексы созданы, PK и FK есть. ERwin упрямо не хочет вытаскивать связи. Помогло вот полное пересоздание PK-ограничения родительской таблицы (т.к. удалить индекс от PK нельзя вроде, + пришлось пересоздавать FK у дочерней таблицы). Но это не выход, т.к. есть такие таблицы-справочники, на которые ссылаются по десятку таблиц. И пересоздавать все эти ограничения FK очень долго и сложно.... Проверял, по системным таблицам в SYSCAT (REFERENCES, INDEXES), чем же одни индексы и PK отличаются от других, рабочих. Отличий нет, только местами - отличия в пользователе, который их создавал. Права всем давал одинаковые. Если пересоздать под совершенно другим юзером PK+FK - ERwin начинает работать. В общем, проблема все еще актуальна, к сожалению... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 18:05 |
|
||
|
ERwin reverse engineer - не все связи FK извлекаются
|
|||
|---|---|---|---|
|
#18+
kbowner wrote: > В общем, проблема все еще актуальна, к сожалению... Думаю, там уже какая-то DB2-шная специфика прёт. Попробуй понять, как ErWin, на основе какой информации, вытаскивает FK (и PK заодно) и проверь, есть ли она там. Может он тащит криво (тогда увы) может схема в БД покоцанная. Некоторые СУБД имеют отдельный опционально поддерживаймый каталог метаинформации, не обязательный для заполнения в мирной жизни. МОжет он его использует. ну и прочитай доку наконец, может там есть как он именно на DB2 их вытаскивает. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 18:40 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=70&tid=1542520]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 348ms |

| 0 / 0 |
