2012-05-29 66 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