2013-08-29 54 views
1

在Enterprise Architect中,我有一个使用UML类和“关联”类关系构建逻辑模型的逻辑模型。我可以将此模型转换为DDL,并将SQL Server 2008设置为默认数据库之后,这种方式非常有效。Sparx Enterprise Architect - DDL转换,多对多关系和SQL Server 2008

但是,我遇到了一些管理多对多关系的痛苦。比方说,我有两个表:Test1的和TEST2

两个表将包含一个单一的属性,名称:字符串

我设置关联的两者之间,与源和目标的多重性为0 .. *

正如预期的那样,当转换为DDL时,这会创建一个关系表,它是完美的。然而,这正是我正在努力的命名约定。

默认情况下,在DDL中,它将创建一个名为'JoinTest1ToTest2'的表,其中test1ID和test2ID作为新表中的值(与两个实际表中生成的ID列匹配)。起初,重命名这是一个障碍,但我意识到,如果我只是将一个名称放入关系中,它将使用该名称作为新表。一个问题解决了。

现在,我有其他问题避免了这样一个简单的解决方案。问题是它在新表中创建了2个外键,这也是完美的。然而,它并不像通常用FK_前缀命名这些外键,它只是简单地调用外键'Test1'和'Test2'。除了不符合命名标准之外,它也是无效的,因为该名称与表名冲突,并且生成的SQL失败。

有什么办法可以指导创建的FKs的名称吗?按照我们的命名标准,关系表应该命名为'Test1_Test2',Fkeys应该是'FK_Test1_Test2__Test1'和'FK_Test1_Test2__Test2'。

尽管在进行DDL转换后(以及执行此操作后,SQL代码的DDL生成实际上可以完美工作),手动更新这些操作非常简单,但在大型模型中执行操作可能非常繁琐。

谢谢!

回答

1

在您设置默认数据库的相同选项页面(工具 - 选项 - 源代码工程 - 代码编辑器)中,有一个DDL名称模板按钮,可让您为外键,主键和独特的约束。

从你的问题看来,你在这里已经失去了正确的设置,因为默认的模板导致外键被命名为“FK_”,后面跟着外部和主表名。

在数据库工程 - 物理数据模型 - 数据类型 - 数据库键 - 外键 - 定义外键名模板下的帮助文件中描述了模板语法。

相关问题