|
|
|
ErWin&Interbase.Генераторы и домены автоматом - как ?
|
|||
|---|---|---|---|
|
#18+
День добрый, уважаемые БД-гуру. Прошу подсказать пути решения (или посылки на FM..) следующей задачи: Дана ErWin-овская схема (ErWin 4.0) без ХП, драйвер EasySoft ODBC. Задача: сгенерить работоспособную структуру базы в Interbase 6.0. Ранее работал с Oracle 8.1.7. Насколько я понял роль ораклового сиквенса в IB выполняет генератор. При экспорте из ErWin в Oracle оные сиквенсы создавались автоматом. При экспорте в Interbase подобного не происходит. Вопрос 1: Как автоматизировать создание генераторов для первичных ключей таблицы ? Слыхал, что существуют некие пост-скрипты в ErWin. Что RTFM по этому поводу? Вопрос 2: Как я понял из следующей статьи на (http://www.stikriz.narod.ru/art/ibdatabase.htm) неэкономично создавать типы столбцов как стандартные (integer, и т.д.), а лучше создать домены и создавать столбцы с типами "мой домен integer". Как объяснить ErWin про домены ? Вопрос 3: Линковочные таблицы (где в качестве primary key - набор primary keys из других таблиц) не создаются корректно. Выдается ошибка о невозможности создать primary key. Примечание: Решения вида "переход на IBExpert" просьба не предлагать - поскольку необходима работа с 4 серверами БД , чего IBExpert, насколько я знаю, обеспечить не может. Заранее приношу извинения за потраченное вами время, если данные вопросы тривиальны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 01:13:29 |
|
||
|
ErWin&Interbase.Генераторы и домены автоматом - как ?
|
|||
|---|---|---|---|
|
#18+
сорри за офтоп, но всё же... Линковочные таблицы (где в качестве primary key - набор primary keys из других таблиц) вот это мне может кто-нибудь объяснить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 09:30:10 |
|
||
|
ErWin&Interbase.Генераторы и домены автоматом - как ?
|
|||
|---|---|---|---|
|
#18+
Линковочные таблицы - это один из способов реализации связи "многие-ко-многим". Возможно я неточно выразился, и следовало бы написать "где первичным ключом является набор foreign keys из других таблиц". Вы, вожможно будете удивлены, но такие конструкции действительно работают и весьма неплохо (во всяком случае, на Oracle). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 10:43:16 |
|
||
|
ErWin&Interbase.Генераторы и домены автоматом - как ?
|
|||
|---|---|---|---|
|
#18+
да я не удивлён, просто недопонял, вот и спросил, если чем обидел, то сорри, не хотел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 10:51:46 |
|
||
|
ErWin&Interbase.Генераторы и домены автоматом - как ?
|
|||
|---|---|---|---|
|
#18+
Если хочешь, брошу проект с генераторами, "линковочными" таблицами и доменами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 10:54:18 |
|
||
|
ErWin&Interbase.Генераторы и домены автоматом - как ?
|
|||
|---|---|---|---|
|
#18+
Ну, насчет генераторов. Вариант. Соглашения: 1. Каждая таблица имеет ключевое поле с именем ИмяТаблицы_Id 2. На логическом уровне для таблиц определо UDP (User Defined Properties) имя generate_id тип List значение по умолчанию ~yes,no (т.е. для каждой таблицы по умолчанию свойство generate_id будет иметь значение yes) 3. Генераторы для ключа создаются для каждой таблицы с именем ИмяТаблицы_Id_gen Реализация генераторов: На физическом уровне в Script Templates/Model Level Script создаем Pre-Script "Создание_генераторов", вот его текст: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. При этом в одном из проектов у меня, например, генерируется след. скрипт: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Реализация триггеров: Реализация генераторов: На физическом уровне в Script Templates/Table Level Script создаем Post-Script "Триггер_для_ключа", вот его текст: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Этот макрос генерирует примерно след. скроипт: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 11:14:16 |
|
||
|
ErWin&Interbase.Генераторы и домены автоматом - как ?
|
|||
|---|---|---|---|
|
#18+
Насчет доменов. Используешь домены ErWin - а, а чтобы они генерировались не физическом уровне, в опциях генерации для схемы Schema "зачекиваешь" чек-бокс CREATE DOMAIN, а для схемы Column - "зачекиваешь" чек-бокс Use Domain. По поводу третьего вопроса - думаю, проблема в методе генерации базы. Я просто выгружаю скрипт - текст в файл, который потом запускаю на выполнение в IBExpert. В нем же (IbExpert) выполняю сравнение старой и новой структур базы и запускаю сгенерированных скрит для выполнения изменений над структурой старой базы. Очень удобный вариант, по-моему. Вся разработка/обновление идет в ErWin, а в IBExpert - администрирование, отладка процедур, и обновление структуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 11:23:06 |
|
||
|
ErWin&Interbase.Генераторы и домены автоматом - как ?
|
|||
|---|---|---|---|
|
#18+
То MV: Не ожидал обстоятельного ответа, ещё раз спасибо. На данный момент база недоступна - опробую рецепт вечером, но судя по всему - самое-то. Позвольте (если несложно) ещё вопрос: По поводу линковочных таблиц, возможно плохо соображаю после бессонной ночи, но всё-таки недопонимаю одну вещь. Выгруженный из ErWin скрипт мы прогнали в IBExpert, а вот дальше "...выполняю сравнение старой и новой структур базы...". Откуда появилась новая структура ? Прошу прощения за назойливость (или тупость), но недопонимаю. Если несложно чуть-чуть подробнее в этом месте. Ещё раз спасибо! To VF: Извините если был чуть резок. На других форумах я (в качестве читателя) обнаруживал тотально агрессивную атмосферу общения и соответственно отреагировал. Opennet.ru и SQL.ru, видимо, приятные исключения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 11:58:55 |
|
||
|
ErWin&Interbase.Генераторы и домены автоматом - как ?
|
|||
|---|---|---|---|
|
#18+
Да тут просто одни и те же тусуются, вроде меня, кто мало что соображают, а всяким "крутым" тут скучно. По поводу старой и новой структуры. Я имею в виду примерно следующий цикл работы: 1. Создание модели в ErWin. 2. Выгрузка скрипта в файл. 3. Загрузка скрипта из файла в IBExpert, генерация "пустой" базы. Если ошибки, то к п.1 4. Эксплуатация базы. 5. Если требуются изменения, то п.6, нет - п.4 6. Коррекция модели в Erwin. 7. Выгрузка скрипта в файл. 8. Загрузка скрипта из файла в IBExpert, генерация новой "пустой" базы. Если ошибки, то к п.6 9. В IBExpert сравнение "старой" (рабочей) базы и "новой" (пустой), преобразование структуры "старой" к "новой" базе. Переход к п.4 -------------------- Естественно, все коррекции выполняются сначала на копии рабочей базы, а затем всем заинтересованным лицам рассылается скрипт, корректирующий структуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 12:09:52 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32618033&tid=1578196]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
169ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 187ms |
| total: | 427ms |

| 0 / 0 |
