【问题标题】:Alternative to Database Design for WebapplicationsWeb 应用程序数据库设计的替代方案
【发布时间】:2012-05-29 18:13:53
【问题描述】:

我大部分时间都在使用 zend 框架开发一些基于 Web 的应用程序。我注意到为 php 代码中的所有数据建模数据库需要花费大量时间。换句话说,您必须对数据进行两次处理。

除了手工设计数据库和表结构之外,还有其他方法吗?

我只是想创建一个数据库,让其他人关心将结构从 php 编程逻辑映射到数据库。

【问题讨论】:

  • 需要注意的一点是,您不一定“每件事都做两次”。对象建模和数据持久性是两个非常不同的东西。一个代表具有动态信息的业务逻辑和流程,另一个代表静态数据。面向对象的设计和关系数据设计之间存在根本的区别,试图将其中一种设计融入另一种的范式和结构会限制您的设计。但是,如果您的模型足够简单以至于您只是在编写基于数据的表单,那么一个体面的框架将为您完成大部分工作。

标签: mysql database design-patterns web-applications automation


【解决方案1】:

啊,您正在寻找Object Relational Mapper!这些在当今许多类型的 Web 应用程序中都很常见。

关于 PHP,我遇到的最好的一个是Doctrine

位于强大的数据库抽象层 (DBAL) 之上的 PHP 对象关系映射器 (ORM)。它的一个关键特性是可以选择用一种专有的面向对象的 SQL 方言编写数据库查询,这种方言称为 Doctrine Query Language (DQL),受 Hibernates HQL 的启发。这为开发人员提供了一种强大的 SQL 替代方案,可保持灵活性而无需不必要的代码重复。

【讨论】:

  • 看起来不错! ORM 是否处理例如在开发过程中自行创建表及其结构,即使我在一段时间后进行了更改?
  • @sharethis 有些是的。 Doctrine 可以从现有数据库生成对象类,当您对数据库进行更改时,Doctrine 会识别更改,无需额外映射:)
猜你喜欢
  • 2011-12-07
  • 2021-08-28
  • 1970-01-01
  • 1970-01-01
  • 2022-12-07
  • 2018-01-31
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多