面向对象设计和数据库设计过程

时间:2016-01-10 11:01:18

标签: java database oop agile

我对开发基于数据库的应用程序的过程有点困惑。 我正在使用java语言和Relational数据库。 循环开发基于面向对象数据库的应用程序(如“库存管理控制”)的过程的正确方法是什么? 开发数据库模式,然后进行OOD,反之亦然。

2 个答案:

答案 0 :(得分:3)

由于我假设您将使用传统的RDBMS,根据我自己的经验,最好先设计数据库模式:考虑存储信息所需的所有表,考虑它们之间的关系(外键)。

下一步应该是编写应用程序本身。我假设您即将使用Java,并且可以从OOP设计中受益。

在这种情况下,我强烈建议使用像Hibernate这样的ORM技术来实现OOP应用程序设计和RDBMS设计之间的喘息。虽然它没有义务,因为你可以使用简单的JDBC方法。

根据我的经验,开发这种方式比首先设计高级OOP应用程序,然后尝试使用DB模式更省时,因为通常使用DB会比使用高级OOP更加耗时。抽象。

答案 1 :(得分:1)

有许多不同的方法可能,它们各有其优点和缺点。

如果您遵循ORM方法并使用像Hibernate这样的工具,您可以隐藏大部分数据库实现。您将继续使用您的OOD,数据库架构将退出。像Hibernate这样的ORM甚至可以为你生成模式(这在测试中非常有用,因为你可以动态地为你的测试创建一个内存数据库)。

这种方法的优点是您可以专注于OOD并使用“瘦片”,在您进行过程中生成数据库架构。这与敏捷方法非常吻合。

ORM方法的缺点是它可能不会导致优化的数据库架构。例如,数据库模式的性能可能不如您更多地关注模式设计那么好。

如果您决定专注于数据库设计,您可以花时间优化它以获得性能和其他非功能性需求(如可伸缩性和审计)。这种方法的缺点是它可能会限制您在代码中执行OOD的方式,并且可能更难以以敏捷为首选的迭代方式工作。