2012-05-29 64 views
0

我大多数时间都在使用zend框架开发一些基于web的应用程序。我注意到,需要大量的时间来为php代码中的所有数据建模一个数据库。换句话说,你必须对数据做两件事。Web应用程序数据库设计的替代方案

是否有替代手工设计数据库和结构的表?

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

+1

您要查找的是所谓的ORM:http://stackoverflow.com/questions/108699/good-php-orm-library – David

+0

有一点要注意的是,你不一定是“无所不为两次。”对象建模和数据持久性是两个完全不同的东西。一个代表运行中信息的业务逻辑和过程,另一个代表持续保持并保持静态数据。面向对象设计和关系数据设计之间存在根本的区别,并试图将其纳入其他范例和结构中,从而限制了您的设计。然而,如果你的模型很简单,你只是写数据表单,那么一个体面的框架将为你做很多工作。 – David

回答

1

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

在关于PHP,我碰上了最好的一个是Doctrine:对于PHP上强大的数据库抽象层(DBAL)的顶部位于

的对象关系映射(ORM)。其关键特性之一是可以在面向专有面向对象的SQL方言(称为Doctrine Query Language(DQL))中编写数据库查询,受Hibernates HQL启发。这为开发人员提供了一种强大的SQL替代方案,可以保持灵活性而不需要重复执行代码。

+0

看起来不错! ORM是否处理在开发过程中自行创建表格及其结构,即使在一段时间后我改变了某些东西? – danijar

+0

@sharethis有些做的是。 Doctrine可以从现有数据库生成对象类,并且当您对数据库进行更改时,更改由Doctrine识别,无需额外映射:) – mattytommo

+0

谢谢,我现在将学习原​​则;) – danijar