【发布时间】:2014-07-20 01:27:44
【问题描述】:
我正在尝试使用 Sparx Enterprise Architect 设计一个数据模型,该模型最终将存储在 MySQL 数据库中。
我的第一个方法是Data Model diagram,它可以用于generate DDL(或相反的reverse engineering)。
这很有效,但一位同事指出了一个问题:我们打算使用 ORM(几乎可以肯定是 Hibernate)将表映射到 Java 类。他的评论是“数据库优先”的方法会排除使用良好的 OO 技术,例如继承。
这似乎是一个好点,但我想知道是否有任何限制。如果我从头开始使用Class Diagram 而不是数据模型图,是否有办法在此模型中包含所有必要的 Hibernate 注释、配置等?而且,如果我以后需要对特定于数据库的功能(例如约束、触发器等)进行建模,考虑到类图并非真正针对此类事物,所有这些都可以在模型中实现吗?
【问题讨论】:
-
我总是喜欢从数据模型图开始,并以此为基础创建我的类图,然后以尽可能简化我的工作的方式映射我的类。
-
谢谢,你的意思是你手动生产吗?理想情况下,只需要维护一个图表并将其用作生成类和数据库模式的单一来源(在模型外部使用最少的“接线”)。
-
在这种情况下,我会维护数据模型图,但我认为答案取决于人本身以及您喜欢的工作方式。
-
嗯,我更熟悉数据库优先的方法,但从未使用过类优先的方法。如果这样做,问题实际上是关于识别模型中无法捕获的任何内容(即类图)。
标签: java mysql hibernate orm enterprise-architect