Al enige tijd denk ik na over een framework wat ik wil gaan schrijven. Dit framework wil ik het liefst dusdanig generiek maken dat het op ieder systeem werkt (voor zover mogelijk).
Als onderdeel van dit framework zou ik graag gebruik maken van een database abstractie laag. Deze laag zou dusdanig abstract moeten zijn dat verschillende databases generieke data kunnen opslaan. Hierbij valt te denken aan bijvoorbeeld de datatypen van Metabase welke zijn gemerged met Pear::DB tot MDB2 van Pear (datatypen).
Daarnaast biedt MDB2 ook de mogelijkheid om de data op een OO-stijl te querien in plaats van de normale SQL queries. Ook dit concept had ik reeds eerder in gedachten. Hieronder een (niet MDB2) voorbeeld van de OO-stijl.
Graag zou ik een open discussie willen starten over het gebruik van beide ideeën. Hierbij denk ik zelf aan:
Als onderdeel van dit framework zou ik graag gebruik maken van een database abstractie laag. Deze laag zou dusdanig abstract moeten zijn dat verschillende databases generieke data kunnen opslaan. Hierbij valt te denken aan bijvoorbeeld de datatypen van Metabase welke zijn gemerged met Pear::DB tot MDB2 van Pear (datatypen).
Daarnaast biedt MDB2 ook de mogelijkheid om de data op een OO-stijl te querien in plaats van de normale SQL queries. Ook dit concept had ik reeds eerder in gedachten. Hieronder een (niet MDB2) voorbeeld van de OO-stijl.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| // Get an insert statement $stmt = $db->getInsertStmt(); // Set the name of the table $stmt->table('tableName'); // Add a boolean column $stmt->intColumn('columnName', 'columnValue'); // Add an integer column $stmt->boolColumn('deleted', true); // Execute the query $stmt->execute(); |
Graag zou ik een open discussie willen starten over het gebruik van beide ideeën. Hierbij denk ik zelf aan:
- zijn er mensen die gebruik maken (of gemaakt hebben) van MDB2 (zo ja, wat zijn je bevindingen);
- hoe staan mensen tegenover het gebruik van generieke datatypen;
- het gebruik van OO-stijl queries i.p.v. SQL;
- performance problemen (hoe groot kan het verschil zijn / mag het verschil worden);
- andere voor- en/of nadelen.