powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PD11, не могу настроить генерацию скрипта для создания таблицы так как мне надо
7 сообщений из 7, страница 1 из 1
PD11, не могу настроить генерацию скрипта для создания таблицы так как мне надо
    #33401862
Relaxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно для ограничений первичного ключа(или foreign key) указывать имя используемого индекса. В ПД я создаю индекс прикрепляю его к моему первичному ключу, вроде все нормально! Но вытаюсь построить скрипт создания этой таблицы имя используемого индекса не указываэться!!!

Другими словами, мне нужно получить что-то типа такого
Код: plaintext
1.
2.
3.
4.
5.
CREATE ORDERS_TBL
(
  ORDER_ID_PK INTEGER NOT NULL,
  ..........
  CONSTRAINT PK_ORDERS PRIMARY KEY(ORDER_ID_PK) USING INDEX IDX_ORDERS_PK
)

можно сделать чтобы ПД прописывал мне USING INDEX IDX_ORDERS_PK.....
...
Рейтинг: 0 / 0
PD11, не могу настроить генерацию скрипта для создания таблицы так как мне надо
    #33402186
Relaxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никто не знает? Или я непонятно сформулировал вопрос? Помогите, я сейчас активно изучаю этот десинжер, и думаю после освоения он мне облегчит в некоторых моментах работу! У меня вот походу появилось еще 2 вопроса:

1.при создании таблицы я к полям имею возможностьписать коментарии, как мне сделать чтобы эти коментарии экспортировались в мой SQL скрипт (Database->Generate Dtabase)
2.При генерации мадели данных с SQL-скрипта в котором есть однострочные комментарии (--такого типа) ПД их не понимает, и думает что это наименование полей! Получаеться полный бред, это глюк, или это исправляеться?
3. Ну и все по тому же вопросу, можно указывать имя индекса для моих ключей (Primary key, foreign key)

ЗЫ. может кто может дать небольшую модель данных? Интересно какой вид она имеет у Вас, какие настройки вы используете?
...
Рейтинг: 0 / 0
PD11, не могу настроить генерацию скрипта для создания таблицы так как мне надо
    #33402210
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relaxxx wrote:
> Никто не знает? Или я непонятно сформулировал вопрос?

Выходной день:) Судя по синтаксису, это Oracle? В PowerDesigner 11 это настраивается на странице Options свойств ключа,
на ней из левой части добавь "using index" - "index name" а правую, после чего укажи его значение.

Только в связи с этим все равно наблюдается глюк при генерации: первичные и альтернативные ключи генерятся ДО индексов,
соответственно, ты получишь ошибку выполнения SQL, надо будет предварительно его подправлять руками.
>
> 1.при создании таблицы я к полям имею возможность писать комментарии, как
> мне сделать чтобы эти комментарии экспортировались в мой SQL скрипт
> (Database->Generate Dtabase)

На закладке Tables&Views поставь галку на Comments в группе Columns.

> 2.При генерации мадели данных с SQL-скрипта в котором есть однострочные
> комментарии (--такого типа) ПД их не понимает, и думает что это
> наименование полей! Получаеться полный бред, это глюк, или это
> исправляеться?

Покажи пример скрипта, не совсем понятно.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
PD11, не могу настроить генерацию скрипта для создания таблицы так как мне надо
    #33405930
Relaxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1.
Denis Popov
Выходной день:) Судя по синтаксису, это Oracle? В PowerDesigner 11 это настраивается на странице Options свойств ключа,
на ней из левой части добавь "using index" - "index name" а правую, после чего укажи его значение.

Да это Oracle, прописал как вы рассказали "using index" - "index name" и проблема решаеться для Primary key, а как быть с Foreign key? Я зачем тогда создавать индексы и связывать их с ключами и референсами, если эта опция ничего не дает( Table Properties->Indexes->Index Properties->Columns->Columns definition!!, я таким образом создал любые индексы и попривязывал их к моим ключам и ссылкам, но это вообще ничего не дало, зачем тогда эта функция??? )???

Еще я работаю с FireBird 1.5, там тоже поддерживаеться USING INDEX (просто я нехочу чтобы БД сама генерировала индексы непонятного названия и предназначения) но при выборе БД InterBase 6.x вкладка Options пропадает(это там где "using index" - "index name")???

2.
Denis Popov
На закладке Tables&Views поставь галку на Comments в группе Columns.

Это в случае с Oracle, и это не те комментарии, мне не нужно
comment on column ХХХХ is, я хотел бы напротив каждого поля таблицы вмоем скрипте писать коментарии( ORD_MANAGER_ID_FK -- ссылка на менеджера, например), ну и к табличкам хотелось бы того же.

3.
Denis PopovПокажи пример скрипта, не совсем понятно.
Код: plaintext
1.
2.
3.
4.
5.
create table Area_passing
(
  key_pole numeric( 18 , 0 ) not null,--уникальный номер участка
  name_area varchar( 150 ) not null unique,--наименование участка
  .......
); 
и у меня получаються колонки типа --уникал, -- наимен )) (здесь БД опять FireBird)
...
Рейтинг: 0 / 0
PD11, не могу настроить генерацию скрипта для создания таблицы так как мне надо
    #33406153
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RelaxxxДа это Oracle, прописал как вы рассказали "using index" - "index name" и проблема решаеться для Primary key, а как быть с Foreign key? Я зачем тогда создавать индексы и связывать их с ключами и референсами, если эта опция ничего не дает( Table Properties->Indexes->Index Properties->Columns->Columns definition!!, я таким образом создал любые индексы и попривязывал их к моим ключам и ссылкам, но это вообще ничего не дало, зачем тогда эта функция??? )???
В Oracle при создании внешнего ключа индекс по полям этого самого ключа автоматом не создается, в отличие от InterBase. Команда на создание FK не подразумевает конструкцию USING INDEX. Указание в модели для индекса, что он PK, AK или FK не приводит к его использованию при генерации ключей. Скорее всего это их некое логическое разбиение для использования в самой модели или при генерации БД.
Relaxxx
Еще я работаю с FireBird 1.5, там тоже поддерживаеться USING INDEX (просто я нехочу чтобы БД сама генерировала индексы непонятного названия и предназначения) но при выборе БД InterBase 6.x вкладка Options пропадает(это там где "using index" - "index name")???

Значит, эта фича в PD не реализована, в PD12beta, кстати, тоже. В принципе ты сам можешь сделать некое ее подобие через Extended Attributes для объекта Reference модели.
Relaxxx
и у меня получаються колонки типа --уникал, -- наимен )) (здесь БД опять FireBird)
А вот это, значит, багофичи парсера SQL-скрипта, реализованного в PowerDesigner'е. Т.е. придется соблюдать определенные правила при построении скриптов, если ты хочешь чтобы PD их корректно разобрал. Пиши, к примеру, так:
Код: plaintext
1.
2.
3.
4.
create table Area_passing (
  key_pole numeric( 18 , 0 ) not null,/*уникальный номер участка*/
  name_area varchar( 150 ) not null unique/*наименование участка*/
); 
...
Рейтинг: 0 / 0
PD11, не могу настроить генерацию скрипта для создания таблицы так как мне надо
    #33406480
Relaxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Popov
В Oracle при создании внешнего ключа индекс по полям этого самого ключа автоматом не создается, в отличие от InterBase. Команда на создание FK не подразумевает конструкцию USING INDEX. Указание в модели для индекса, что он PK, AK или FK не приводит к его использованию при генерации ключей. Скорее всего это их некое логическое разбиение для использования в самой модели или при генерации БД.

Понятно, не сильно приятно((
Denis Popov
Значит, эта фича в PD не реализована, в PD12beta, кстати, тоже. В принципе ты сам можешь сделать некое ее подобие через Extended Attributes для объекта Reference модели.

Вообщем, я так понял, работу с индексами в скриптах нужно будет поправлять вручную. Насчет Extended Attributes, нельзя ли поподробней, что можно с помосчью него сделать, можна прописывать какие-то правила?
Denis Popov
А вот это, значит, багофичи парсера SQL-скрипта, реализованного в PowerDesigner'е. Т.е. придется соблюдать определенные правила при построении скриптов, если ты хочешь чтобы PD их корректно разобрал.
Это нестрашно, я с этим смирюсь)

А что насчет комментариев?
Еще непрятные моменты, они лечяться:
при создании reference между таблицами, появляеться имя constraint этой ссылки. Если я подвину в нужное место это имя(для читабельности) и опять пошевелю стрелку или таблицу, имя ссылки опять возвращаеться в положение по умолчанию (бесит это), протектид не помогает. Имя ссылки можно писать по вертикали?

ЗЫ. Да ПД интересная штука, и полезная, но со своими тараканами, и их у нее НЕМАЛО (((
...
Рейтинг: 0 / 0
PD11, не могу настроить генерацию скрипта для создания таблицы так как мне надо
    #33406593
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RelaxxxПонятно, не сильно приятно((
Из вышесказанного не следует, что в Oracle необходимо создавать этот индекс.
RelaxxxНасчет Extended Attributes, нельзя ли поподробней, что можно с помосчью него сделать, можна прописывать какие-то правила?
Меню Database->Edit Current DBMS, далее по ветке Profile добавь метакласс Reference (правой кнопкой мыши на ветке Profile -> Ad Metaclass), у него добавь Extended Attribute (правой кнопкой: New->Extended Attribute), обзови его, к примеру, ExtUsingIndex, Data Type поставь String. Теперь по ветке Script\Objects\Reference у двух подветок: Add и Create измени значение, добавив такую строку:
Код: plaintext
[%ExtUsingIndex% ? using index %ExtUsingIndex%:]
В синтаксисе для Interbase могу ошибиться, поправь если что. Теперь в диалоге свойств Reference появилась еше одна закладка - Extended Attributes. В ней, если ты укажешь значение для атрибута ExtUsingIndex, то оно появится в скрипте на создание.

Это полдела. Теперь можно заставить PD определять значение ExtUsingIndex при реинжиниринге. Для этого следует по пути Script\Objects\Reference\SqlListQuery в вписке на верхней строке включить ", ExtUsingIndex EX" и поправить запрос, чтобы он тебе возвращал требуемое значение.

RelaxxxА что насчет комментариев?
Правь скрипты на создание объектов, как я показал выше. Разве что для таблиц напротив каждого поля это не получится, поскольку список полей при создании заблицы расшивается внутренним макросом %TABLDEFN%. Разве что ты можешь перед каждой таблицей выводить свои комментарии, что в ней чего обозначает. Кстати, почему бы эти комментарии не делать равными собственно комментариям к таблицам, полям и т.д.?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PD11, не могу настроить генерацию скрипта для создания таблицы так как мне надо
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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