Date post: | 30-Jul-2015 |
Category: |
Software |
Upload: | martin-stekl |
View: | 62 times |
Download: | 5 times |
ORMVzory mapování a možnosti jejich implementace
Martin Štekl
@stekycz
30.3.2013
1
Co je ORM?
Object-relational mapping
Programovací technika
Mapování dat do objektů z
◦ Databáze
◦ Souborů
◦ REST/SOAP
◦ Jiného úložiště
2
Přehled
Table Data Gateway
Row Data Gateway
Data Mapper
Active Record
Martin Fowler, Patterns of Enterprise Application Architecture
5
Table Data Gateway
Jedna tabulka nebo pohled
Základní CRUD
Doménový objekt jen obaluje data a
business logiku
Pracuje s kolekcemi položek
6
Row Data Gateway
Jeden řádek tabulky nebo pohledu
Základní CRUD
Doménový objekt jen obaluje data a
business logiku
8
Data Mapper
Přístup k objektu i databázi
Doménový objekt
◦ nemá žádný CRUD
◦ je zcela nezávislý
◦ jen obaluje data a business logiku
10
Active Record
Obsahuje data a business logiku
CRUD operace přímo na objektu
Jednoduchý na implementaci
12
Přístup k datům
Data access layer (DAL)
◦ vrstva pro přístup k persistentním datům
Data access object (DAO)
◦ abstraktní rozhraní pro DAL
◦ každá doména by měla mít vlastní
Data transfer object (DTO)
◦ přenos dat mezi různými částmi aplikace
◦ může se jednat o doménový objekt
14
Data access object
Jednotné rozhraní (CRUD?)
Co všechno má obsahovat?
◦ Základní přístup k datům
◦ Business logiku?
◦ Komunikaci s jinými DAO?
Lze použít jako službu v Nette?
15
Implementace
Neznamená použít Doctrine
Neznamená použít jiný framework
Neznamená generovat databázi nebo
model
Znamená dodržovat principy
17
Je to efektivní?
Záleží na implementaci
Optimalizace dotazů
◦ Zbytečné JOINy
Transakce
◦ Automatické
◦ Manuální
◦ Bez transakcí
19
V čem je háček?
Data z více různých úložišť
Cizí klíče (MyISAM)
Nepřímé vazby
Cache
Potřeba psát vlastní SQL dotazy?
Záleží na databázi, implementaci a
požadavcích
20