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
+
0
-

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í.

CZechBoY
Člen | 3608
+
0
-

Žádný cachování tam nemáš, takže to nemůže dělat bordel :-))
Vypadá to, že máš hodně jednoduchou logiku tak ti stačí jen takovej minimodel, ale lepší je dělat metody modelu víc konkrétní a aby něco dělaly, ne že jen překlopí data do databáze.