Sybase Powerdesigner - как автоматически отформатировать именование PK и FK?
Sybase Powerdesigner - как автоматически отформатировать именование PK и FK?
Запустите скрипт для форматирования первичного и внешнего ключей, как этот формат
PK_TABLENAME
FK_PARENT_CHILD
пример
PK_Post
FK_Post_Comment
2 ответа
По крайней мере, для Foreign-Key вы можете создать обработчик события Initialize, чтобы определить имя из прикрепленных таблиц. Это будет работать при создании ссылки на диаграмме; возможно, нет, когда вы создаете его через список (поскольку таблицы еще не будут прикреплены).
Я оставляю как упражнение, связанное с именными коллизиями...
Для первичного ключа вы можете использовать обработчик события Validate в метаклассе Key и переименовывать ключ, когда он становится первичным (если его имя уже не начинается с "PK").
Следующее решение является сложным, но также очень гибким / не таким навязчивым. Это поможет вам начать:
В вашей модели PD создайте новую "Пользовательскую проверку с опцией автофикса" для объекта метакласса таблицы или столбца (или ссылки). (Неважно, кого вы выберете. Вы можете перебирать субобъекты в своем коде vbscript, используя вложенные циклы foreach (для каждой таблицы... / для каждого столбца...), см. Ниже:
нажмите на пункт меню модель / расширенные определения модели. Нажмите на сине-белый значок>===.
Дайте вашему новому "Расширенному определению модели" имя, например, mysql55-custom-001.
Необязательно: Нажмите на "Экспортировать определение расширенной модели", экспортируйте его как mysql55-custom-001.xem.
Нажмите на стрелку рядом с именем нового определения расширенной модели, чтобы сохранить его в подкаталоге по умолчанию.
Это расширенный диалог моделей:
Щелкните правой кнопкой мыши "Профиль", нажмите "Добавить метаклассы...", проверьте столбец.
Щелкните правой кнопкой мыши, выберите "New...", нажмите / выберите "Custom Check".
Теперь добавьте пользовательскую проверку в вашу модель. Вы должны определить скрипт проверки (в vbscript) и скрипт автофиксации.
Нажмите кнопку "Справка", нажмите "Определение сценария пользовательской проверки". Вы найдете пример кода, чтобы начать работу. Это будет выглядеть так Но вам, конечно, придется адаптировать код с низкоуровневыми функциями обработки строк vbscripts.