Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Разработка Web приложения с поддержкой разных БД

12K
26 декабря 2005 года
Vitaly_82
9 / / 17.11.2005
Всем привет!:)
Нужно ваше мнение. Необходимо чтобы CMS которую пишу на PHP, могла взаимодействовать с MsSql, PostgreSql, Oracle, также как и с MySql.
То, что я хочу предпринять: Абстрагироваться полностью от SQL, во всей CMS, написать класс который бы выполнял всю необходимую работу с MySql, затем наследуя его, создавать классы для работы с другими серверами БД, перекрывая необходимые свойства и методы, и изменять их согласно с их спецификой работы.
При установке CMS, юзер выбирает с каким сервером БД будет работать, прописываю это, например в config.php, при инициализации работы приложения, создаю объект того класса БД, которое прописано в конфигурации, далее приложение использует методы выбранного сервера БД.

Просто писать не мало придется, вот и хочу с вами посоветоваться, нужно ли это все городить или может это уже реализовано?, и было бы правильно именно таким образом реализовать поддержку разных серверов БД?
8
26 декабря 2005 года
mfender
3.5K / / 15.06.2005
"Абстрагироваться полностью от SQL" вряд-ли удастся. А вот от конкретного драйвера - да. Вобщем-то, огород городить действительно не стоит, т.к., например, в PEAR abstraction layer уже есть. Ну, для интересу можно полюбопытствовать, что в нём написано.
12K
28 декабря 2005 года
Vitaly_82
9 / / 17.11.2005
Цитата:
Originally posted by mfender
"Абстрагироваться полностью от SQL" вряд-ли удастся. А вот от конкретного драйвера - да. Вобщем-то, огород городить действительно не стоит, т.к., например, в PEAR abstraction layer уже есть. Ну, для интересу можно полюбопытствовать, что в нём написано.


Спасибо за совет, уже скачал пару классов:
DB_DataObject и DB_Ado, сейчас сижу разбираюсь, правда эти классы автономно не работают, используют еще некоторые классы из PEAR, придется и базовые классы искать.

3.6K
28 декабря 2005 года
kuljok
64 / / 16.03.2004
Цитата:
Originally posted by Vitaly_82
Всем привет!:)
Нужно ваше мнение. Необходимо чтобы CMS которую пишу на PHP, могла взаимодействовать с MsSql, PostgreSql, Oracle, также как и с MySql.
То, что я хочу предпринять: Абстрагироваться полностью от SQL, во всей CMS, написать класс который бы выполнял всю необходимую работу с MySql, затем наследуя его, создавать классы для работы с другими серверами БД, перекрывая необходимые свойства и методы, и изменять их согласно с их спецификой работы.
При установке CMS, юзер выбирает с каким сервером БД будет работать, прописываю это, например в config.php, при инициализации работы приложения, создаю объект того класса БД, которое прописано в конфигурации, далее приложение использует методы выбранного сервера БД.

Просто писать не мало придется, вот и хочу с вами посоветоваться, нужно ли это все городить или может это уже реализовано?, и было бы правильно именно таким образом реализовать поддержку разных серверов БД?



Все это в adodb реализовано.

15
28 декабря 2005 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by kuljok
Все это в adodb реализовано.


Согласен, но всё же лучше ИМХО писать под каждую БД своё, т.к. у них есть некоторые специфические запросы.

3.6K
28 декабря 2005 года
kuljok
64 / / 16.03.2004
Цитата:
Originally posted by shaelf
Согласен, но всё же лучше ИМХО писать под каждую БД своё, т.к. у них есть некоторые специфические запросы.



Ну это да конечно. Но как заметил mfender, ето сложновато. Ты просто потратишь ресурсы на, IMHO, не самое важное. Ты ведь пишешь под конкретную схему запросы. Это же не СУБД какая-то. Проще писать запросы просто такие, чтобы везде работали. Еще представления использовать можно и т.п.

Как вариант можно юзать тот же adodb, а запросы в отдельном ресурсе хранить, в XML каком-нить, и юзать в зависимости от базы нужный ресурс.

12K
28 декабря 2005 года
Vitaly_82
9 / / 17.11.2005
Цитата:
Originally posted by kuljok

Как вариант можно юзать тот же adodb, а запросы в отдельном ресурсе хранить, в XML каком-нить, и юзать в зависимости от базы нужный ресурс.



Да, похоже что adodb - оптимальное решение для моей задачи, всем спасибо за участие, тема закрыта. :)

2
28 декабря 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by kuljok
Ты ведь пишешь под конкретную схему запросы. Это же не СУБД какая-то. Проще писать запросы просто такие, чтобы везде работали.


конкретная схема - тоже формируется с учетом СУБД. и писать везде работающие запросы - совсем не просто. одно дело - Oracle, другое Firebird и уж совсем третье - MySQL.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог