SQL 是一個成熟的世界,即使 ZODB or SQL 是個討論議題,實務上還是要想辦法讓它們互通有無。整合的方法主要有三大類:
- Database Adapter + Z SQL Method
- ORM (SQLAlchemy)
- Pickle
這是傳統方法,先安裝 Database Adapter 再用 ZSQL Method 建立存取邏輯的程式碼,最後由 Page Template 建立操作和顯示的介面。整個流程邏輯跟 PHP / ASP 早期硬幹應用程式很像,原則上就是按照 CRUD 概念去刻。常見的 MySQL 可以搭 zmysqlda,PostgreSQL 可以搭 psycopg2,更多細節可參照範例文件。
在 Database Adapter 的基礎上,還可以利用 Object Relation Mapper (ORM) 來協助開發,像 SQLAlchemy 就是一個 ORM 工具,越來越多 SQL 整合是透過它來進行,成熟的例子之一是 ContentMirror,它把 ZODB 的內容資料同步儲存在 SQL 資料庫裡,目前支援 Archetypes 的型別內容,據說傳到 Google App Engine 沒有問題,還沒機會實測。
另一種思惟方式,是直接把 Pickle 資料塞到 SQL 資料庫裡,像 RelStorage 就是這類例子。
No comments:
Post a Comment