【发布时间】:2016-08-07 06:10:08
【问题描述】:
在 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 生成实际上可以完美运行),但在大型模型中这样做可能很乏味。
谢谢!
【问题讨论】:
标签: data-modeling transformation ddl enterprise-architect