在 PowerDesigner 中创建 table 时如何插入默认列
How insert default columns when creating a table in PowerDesigner
我们有几个列在所有 table 中都是必需的。列用于审计、记录日期等。配置 PowerDesigner 以在物理模型中创建时自动将这些列添加到 table 的过程是什么?
我正在使用 PowerDesigner 16.5。
我已经能够将默认触发器插入到触发器模板项中的 DBMS 属性中,我可以在其中为所有 table 插入几个默认触发器(尽管我仍在学习使用的 "language"在 PD 中),并且在每个 table 中我将插入默认触发器。
我看到了几种将设计助手添加到 PDM 的方法:
- 将其添加到 Table class
的 Initialize 事件处理程序中
- 在 Table class 中创建一个菜单以将它们添加到现有表格中
对于所有这些,最好在单独的扩展 (Tools > Resources > Extensions > Physical Data Models...
) 中定义这些工具,也许 Auto attach
,这样它就可以在多个模型之间共享。然后,您可以使用 Model > Extensions > Attach an Extension
工具栏项将其附加到现有模型。
你可以用标准 VBScript 来实现,这是一种实际的语言,不仅用于 PD...
此扩展中包含以下所有元素。
在全局脚本中,实际添加默认列的代码。
function ColumnExists(tab, name)
if tab.ClassName = "Table" then
dim col
for each col in tab.Columns
if col.Name = name then
ColumnExists = true
exit function
end if
next
end if
ColumnExists = false
end function
Sub DoCreateColumns(tab)
if not tab.ClassName = "Table" then exit sub
dim c
if not ColumnExists(tab,"AuditDate") then
set c = tab.CreateObject(cls_Column)
c.Name = "AuditDate"
c.Code = "ADDT"
c.DataType = "datetime"
output "... adding column AuditDate"
end if
End Sub
在 Table class 上,用于初始化的事件处理程序:
Function %Initialize%(obj)
DoCreateColumns obj
%Initialize% = True
End Function
对于 Table 上下文菜单,您需要一个方法,例如创建列:
Sub %Method%(tab)
DoCreateColumns tab
End Sub
和一个菜单,例如CreateColumns(实际的上下文菜单项名称取自您在 XML 选项卡中编辑的命令标题...):
<Menu>
<Command Name="CreateColumns" Caption="Create Standard Columns" />
</Menu>
我们有几个列在所有 table 中都是必需的。列用于审计、记录日期等。配置 PowerDesigner 以在物理模型中创建时自动将这些列添加到 table 的过程是什么?
我正在使用 PowerDesigner 16.5。
我已经能够将默认触发器插入到触发器模板项中的 DBMS 属性中,我可以在其中为所有 table 插入几个默认触发器(尽管我仍在学习使用的 "language"在 PD 中),并且在每个 table 中我将插入默认触发器。
我看到了几种将设计助手添加到 PDM 的方法:
- 将其添加到 Table class 的 Initialize 事件处理程序中
- 在 Table class 中创建一个菜单以将它们添加到现有表格中
对于所有这些,最好在单独的扩展 (Tools > Resources > Extensions > Physical Data Models...
) 中定义这些工具,也许 Auto attach
,这样它就可以在多个模型之间共享。然后,您可以使用 Model > Extensions > Attach an Extension
工具栏项将其附加到现有模型。
你可以用标准 VBScript 来实现,这是一种实际的语言,不仅用于 PD...
此扩展中包含以下所有元素。
在全局脚本中,实际添加默认列的代码。
function ColumnExists(tab, name)
if tab.ClassName = "Table" then
dim col
for each col in tab.Columns
if col.Name = name then
ColumnExists = true
exit function
end if
next
end if
ColumnExists = false
end function
Sub DoCreateColumns(tab)
if not tab.ClassName = "Table" then exit sub
dim c
if not ColumnExists(tab,"AuditDate") then
set c = tab.CreateObject(cls_Column)
c.Name = "AuditDate"
c.Code = "ADDT"
c.DataType = "datetime"
output "... adding column AuditDate"
end if
End Sub
在 Table class 上,用于初始化的事件处理程序:
Function %Initialize%(obj)
DoCreateColumns obj
%Initialize% = True
End Function
对于 Table 上下文菜单,您需要一个方法,例如创建列:
Sub %Method%(tab)
DoCreateColumns tab
End Sub
和一个菜单,例如CreateColumns(实际的上下文菜单项名称取自您在 XML 选项卡中编辑的命令标题...):
<Menu>
<Command Name="CreateColumns" Caption="Create Standard Columns" />
</Menu>