PassExcel
Новичок
Здравствуйте. Нужна ваша помощь в выборе подходящей архитектуры.
Имеется несколько базы данных (mysql,mssql,firebird и т.д.)
Общая задача сводится к тому, чтобы я получал информацию из баз через классы, методы которых у всех различаются.
И должен быть один глобальный класс с общими методами.
Например у всех баз - getVersion()
У mysql - нужно посчитать кол-во таблиц, processlist и т .д.
У mssql - нужно посчитать кол-во записей, настройки и т.д.
Т.е. у каждой базы, свои требования, что от туда мне нужно.
Вопрос в том, как это все организовать?
Мой вариант был таким, пока не зашел в тупик:
Теперь определим классы для каждой базы
Теперь определяем необходимые классы метод необходимые для получения информации из базы
Но связать это все не получилось, не хватает знаний. Подскажите, в какую сторону мне нужно копать?
Имеется несколько базы данных (mysql,mssql,firebird и т.д.)
Общая задача сводится к тому, чтобы я получал информацию из баз через классы, методы которых у всех различаются.
И должен быть один глобальный класс с общими методами.
Например у всех баз - getVersion()
У mysql - нужно посчитать кол-во таблиц, processlist и т .д.
У mssql - нужно посчитать кол-во записей, настройки и т.д.
Т.е. у каждой базы, свои требования, что от туда мне нужно.
Вопрос в том, как это все организовать?
Мой вариант был таким, пока не зашел в тупик:
PHP:
/**
* Глобальный верхний класс. Здесь будут лежать общие методы для всех баз.
*
*/
abstract class IODatabase {
abstract function getVersion();
}
Теперь определим классы для каждой базы
PHP:
/**
* Общий класс для баз mysql
*/
class mysql extends IODatabase {
}
/**
* Общий класс для баз mssql
*/
class mssql extends IODatabase {
}
и т.д.
Теперь определяем необходимые классы метод необходимые для получения информации из базы
PHP:
/**
* Класс для учета кол-ва таблиц, пустых записей и т.д.
*/
class mysql_counter extends mysql {
function countTables();
function checkNulls();
}
/**
* Класс для просмотра листинга запросов
*/
class processlist extends mysql {
function explain();
function process();
}
/**
* Класс для получения информации о кол-ве записей, пользователей, коннектов
*/
class mssql_counter extends mssql {
function countRecords();
function countUsers();
function countConnects();
}
и другие классы для всех типов