Univerzální model pro více tabulek
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- pcs
- Člen | 22
Zajímalo by mne, jestli můžu vytvořit univerzální model, který budu pak používat v presenteru. Jde o to, že mám hodně tabulek, do kterých vkládám hodnoty, opravuji je, vytahuji jednotlivé záznamy nebo selecty. Tak jsem si si udělal model, který funguje takto:
<?php
function addModule($module, $values) {
$table = $this->getTable($module);
try {
if(isset($table)) return $this->database->table($table)->insert($values);
} catch (PDOException $e) {
if ($e->getCode() == '23000') {
throw new DuplicateSlugException;
} else {
throw $e;
}
}
return NULL;
}
function getTable($module) {
if ($module == Module::EMAIL) return self::TABLE_EMAIL;
if ($module == Module::USER) return self::TABLE_USER;
return NULL;
}
?>
Obdobně by pak fungují funkce pro UPDATE, SELECT a fetch() pro jeden záznam. Je to v pořádku nebo je lepší psát pro každou „tablku“ separátní model? Takhle mi přijde, že ušetřím hodně kódu, ale nevím jestli to pak nenadělá problémy v cachování.