ORM: Object Relational Mapping;中文被稱為【物件關係對映】,聽起來很奇妙,物件就物件,有關係就是沒關係(?),是要對映什麼?
ORM理論是以「軟體工程師」和「資料庫管理師」為對象,將兩者產出的「物件」再做一次「關係」的「對映」處理。
你有看懂嗎?
看完我自己也不知道自己在寫什麼,重新再寫一次。
軟體工程師大多是以物件導向(OOP)為寫作基礎,具體來說就是:
Object滿天飛 圖片來源 |
資料庫管理師大多是以關聯(Relational)為寫作基礎,具體來說就是:
Table滿地爬 圖片來源:pg.geoscienceworld.org |
兩個本質完全不同,但某些地方卻又是很相近的,比如:
- Object相當於Tuple
- Properties相當於Attribute
關聯式資料庫的資料表結構 圖片來源:維基百科 |
既然這麼相近,那麼就可以直接做對應關係了嗎?
理想是美好的,現實是殘酷的。
百變的Table關聯以及複雜的SQL指令,絕不是一個簡單Object可以包含的!
所以現在所能看到ORM的應用上,大都只限定簡單關聯上使用而已,你說說看,這結果是不是很殘酷!
然而,在Delphi裡,因為框架(Framework)的關係,實作上還蠻好解決,甚至是複雜SQL應用也不是問題。
實作篇我們就下回再續囉!
~To be continued~
Hi
回覆刪除I tried your ORM... interesting! How about generating fields not tied to DB filed types (for example TIntegerField) but to native types (Integer)? As it you would create a full-PODO
Hi,
刪除I have update "Delphi ORM Generator"
You could trying it! :D