powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Нужна ли поддержка различных СУБД?
19 сообщений из 19, страница 1 из 1
Нужна ли поддержка различных СУБД?
    #37808540
Аригато
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Традиционно при реализации проектов я вводил поддержку разных СУБД, а не только MySQL. Для этого использовался абстрактный класс db_base, в котором были описаны основные методы работы в БД (выборка, вставка, удаления и т.д.). Для каждой СУБД писался свой класс, в котором была реализация всех этих методов под конкретную СУБД.

Плюсы такого метода: написанный код можно использовать в проектах, которые работают не только с MySQL, но и с другими СУБД. Хотя на практике в основном приходится иметь дело именно с MySQL.
Минусы: т.к. запросы генерируются, а не составляются вручную, то теряются многие возможности конкретных СУБД.

Собственно, задался вопросов, что лучше, иметь возможность писать код, который сможет работать на любой СУБД (стоит только подсунуть ему класс с реализацией всех методов под нужную СУБД и готово) или же писать код, который будет жестко завязан на определенной СУБД (скорее всего, именно на MySQL)?

К примеру, в MySQL хочется использовать триггеры, но имея абстракцию в виде описанных выше классов, такое сделать проблематично.

В общем, интересует мнение профессионалов, кто как реализует свои проекты.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37808562
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, если пишите "для себя", то такими вопросами вообще не стоит заморачиваться. Да и вообще мускул бесплатен и доступен на основных платформах без проблем, поэтому никакого смысла даже при широком распространении приложения - нету.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37808576
bdmalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АригатоТрадиционно при реализации проектов я вводил поддержку разных СУБД, а не только MySQL. Для этого использовался абстрактный класс db_base, в котором были описаны основные методы работы в БД (выборка, вставка, удаления и т.д.). Для каждой СУБД писался свой класс, в котором была реализация всех этих методов под конкретную СУБД.

Плюсы такого метода: написанный код можно использовать в проектах, которые работают не только с MySQL, но и с другими СУБД. Хотя на практике в основном приходится иметь дело именно с MySQL.
Минусы: т.к. запросы генерируются, а не составляются вручную, то теряются многие возможности конкретных СУБД.

Собственно, задался вопросов, что лучше, иметь возможность писать код, который сможет работать на любой СУБД (стоит только подсунуть ему класс с реализацией всех методов под нужную СУБД и готово) или же писать код, который будет жестко завязан на определенной СУБД (скорее всего, именно на MySQL)?

К примеру, в MySQL хочется использовать триггеры, но имея абстракцию в виде описанных выше классов, такое сделать проблематично.

В общем, интересует мнение профессионалов, кто как реализует свои проекты.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37808582
neoddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любая универсализация должна быть основана на бизнес-сценарии.
Потенциально можно делать программы, которые компилируются и под линух и под винду,
но если все ваши пользователи только на винде, что это даст?

Бизнес-сценарий позволяет ускорить разработку и внедрение и сэкономить время/деньги.
Обратная сторона, про которую надо помнить - накопление технических долгов в системе.

На практике получается какой-то баланс между универсализацией и оптимизацией, достаточный
для конкурентности (или просто работоспособности внутреннего) продукта.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37808585
bdmalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На мой взгляд "поддержка любой БД" - это совершенно ненужная роскошь.Лучше писать явно под одну СУБД.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37808612
Аригато
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bdmalexНа мой взгляд "поддержка любой БД" - это совершенно ненужная роскошь.Лучше писать явно под одну СУБД.
Все же очень многие открытые проекты строятся по принципу универсальности. Всегда в голове мелькает мысль, а что, если я захочу переделать проект под другую СУБД, ведь это придется пересматривать весь код. Другое дело просто реализовать один класс.
Можно попытаться выйти на другой уровень абстракции, как минимум, надо исключить какие-либо SQL-конструкции из PHP-скриптов, хотя бы просто вынести куда-то все это дело в одно место.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37808630
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аригато,

Для себя пишите как Вам хочется.
А так, вообще-то, база данных, обычно, представляет гораздо большую ценность, чем Ваш говнокод на любом языке. Причём, судя по начальному посту, очень хреновый.
Так что выбирайте: или работать программистом, или торговать шавермой в ларьке.
Может, я обидные слова сказал, но фактом является то, что Вам очень тяжело будет стать программистом с таким подходом.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37808636
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и в крайнем случае можно взять какую-нибудь ОРМ уже готовую.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37808641
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аригато,

Даже если такая поддержка не нужна - писАть CRUD вручную это прошлый век, да и лениво очень.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37808738
Аригато
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПричём, судя по начальному посту, очень хреновый.
Просто интересно, из какой части поста это вытекает.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37808866
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АригатоТрадиционно при реализации проектов я вводил поддержку разных СУБД, а не только MySQL

каких например? postgresql,oracle,sqlite,firebird,mongodb...
даже поддержку ВСЕХ популярных сделать огромная проблема, а еще в рамках одной БД есть разлиция на уровне версий, типов таблиц и т.д.
такие вещи по хорошему надо закладывать изначально. прогнозировать рост проекта и под это дело выбирать БД. а в случае взрывной популярности когда выбранная бд не будет справляться даже после всех тюнингов и апгрейдов сервака(или кластера) - простой сменой на другую все равно ничего не выиграете. для хайлоада совсем другие требования, придется перепроектировать скорее всего почти все а не только уровень БД. а может и перейти на nosql. а заранее такие вещи предусмотреть все равно никто никогда не сможет

АригатоК примеру, в MySQL хочется использовать триггеры, но имея абстракцию в виде описанных выше классов, такое сделать проблематично.

не совсем понятно. повесили вы триггер на удаление, например. он сам и будет срабатывать при delete. чем вам помешает ваша абстракция? это же происходит на уровне самой бд.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37808923
Аригато
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uкаких например? postgresql,oracle,sqlite,firebird,mongodb...
Смысл в потенциальной поддержки, а не в том, какие классы уже реализованы. Т.е. при необходимости можно реализовать класс для поддержки любой другой СУБД, при этом не внося никаких изменений в код самого проекта.

r uне совсем понятно. повесили вы триггер на удаление, например. он сам и будет срабатывать при delete. чем вам помешает ваша абстракция? это же происходит на уровне самой бд.
Ну так триггер надо еще создать, а как написать универсальный метод для создания триггера? Конечно, можно извратиться, но это уже слишком.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37808953
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АригатоСмысл в потенциальной поддержки, а не в том, какие классы уже реализованы. Т.е. при необходимости можно реализовать класс для поддержки любой другой СУБД, при этом не внося никаких изменений в код самого проекта.
начнем с того что реализовать настолько универсальную абстракцию чтоб она могла работать с ЛЮБОЙ из существующих БД - почти невозможно. так как по сложности это превзойдет сам проект где эта абстракция будет использоваться. поэтому если есть именно цель - сделать поддержку кучи БД - то придется это делать, иначе это лишнее

АригатоНу так триггер надо еще создать, а как написать универсальный метод для создания триггера? Конечно, можно извратиться, но это уже слишком.
таблицы, представления, триггеры... - создаются обычно на уровне design time а не в real time. следовательно в вашем приложении БД-абстракция и не должна уметь это делать универсально. к тому же это делается только раз. и это можно прописать просто нативным кодом и выполнить через query.
считаю что проблема притянута за уши

считаю что распаляться на поддержку всего зоопарка БД нет смысла. если это не самоцель.

само приложение же не абстрактно. оно призвано решать определенные задачи. под них и нужно подобрать БД и другие компоненты. и с ними работать.
чем универсальнее попытаетесь сделать - тем больше потратите времени и тем тормознее будет работать. это очевидно.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37809276
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор тем тормознее
и глючнее
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37812583
qwerty8798
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аригато,

Вы совершаете типичную ошибку) Зачем писать свой велосипед, если уже есть написанные?(PDO) Работа с разными СУБД крайне редка. Игра не стоит свеч.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37812597
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как же PDO поможет заменить TOP на LIMIT ?
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37812611
Няша ррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аригато, дай своё мыло я те свой класс скину
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37812815
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АригатоbdmalexНа мой взгляд "поддержка любой БД" - это совершенно ненужная роскошь.Лучше писать явно под одну СУБД.
Все же очень многие открытые проекты строятся по принципу универсальности.
gallery2 ДВА РАЗА переписывали с нуля по этой причине. у них там просто рассадник проэктантов.
...
Рейтинг: 0 / 0
Нужна ли поддержка различных СУБД?
    #37812816
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindАригатопропущено...

Все же очень многие открытые проекты строятся по принципу универсальности.
gallery2 ДВА РАЗА переписывали с нуля по этой причине. у них там просто рассадник проэктантов.
по факту, кстати, галерейка имеет среднюю распространенность и посредственную производительность, хотя по всем параметрам должна была стать иконой стандартом в своей нише.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Нужна ли поддержка различных СУБД?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]