public function getTable($tableName, array $map = null)
    {
        if (($map === null) && (is_string($tableName))) {
            if (isset($this->cacheTables[$tableName])) {
                $table = $this->cacheTables[$tableName];
            } else {
                $table = new Table($this, $tableName);
                $this->cacheTables[$tableName] = $table;
            }
        } else {
            $table = new Table($this, $tableName, $map);
        }
        return $table;
    }