1

在 Enterprise Architect 中,我有一个使用 UML 类和“关联”类关系来构建逻辑模型的逻辑模型。我可以将此模型转换为 DDL,并将 SQL Server 2008 设置为默认数据库后,效果很好。

然而,我在管理多对多关系时遇到了一些痛苦。假设我有两个表:Test1 和 Test2

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

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

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

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

现在,我遇到的另一个问题避免了如此简单的解决方案。问题是它在新表中创建了 2 个外键,这又是完美的。但是,它不是像通常使用 FK_ 前缀那样命名这些外键,而是简单地调用外键“Test1”和“Test2”。除了不遵循命名标准而令人讨厌之外,它也是无效的,因为此名称与表名冲突,并且生成的 SQL 失败。

有什么方法可以指导创建的 FK 的名称吗? 根据我们的命名标准,关系表应命名为“Test1_Test2”,Fkey 应为“FK_Test1_Test2__Test1”和“FK_Test1_Test2__Test2”。

虽然在进行 DDL 转换之后手动更新这些非常简单(并且在这样做之后,SQL 代码的 DDL 生成实际上可以完美运行),但在大型模型中这样做可能很乏味。

谢谢!

4

1 回答 1

1

在您设置默认数据库的同一选项页面中(工具 -- 选项 -- 源代码工程 -- 代码编辑器),有一个用于 DDL 名称模板的按钮,它允许您为外键、主键和唯一约束指定模板.

从您的问题来看,您似乎在这里丢失了正确的设置,因为默认模板导致外键被命名为“FK_”,后跟外表名和主表名。

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

于 2013-08-30T08:33:51.527 回答