在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生成实际上可以完美工作),手动更新这些操作非常简单,但在大型模型中执行操作可能非常繁琐。
谢谢!