|
|
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
Традиционно при реализации проектов я вводил поддержку разных СУБД, а не только MySQL. Для этого использовался абстрактный класс db_base, в котором были описаны основные методы работы в БД (выборка, вставка, удаления и т.д.). Для каждой СУБД писался свой класс, в котором была реализация всех этих методов под конкретную СУБД. Плюсы такого метода: написанный код можно использовать в проектах, которые работают не только с MySQL, но и с другими СУБД. Хотя на практике в основном приходится иметь дело именно с MySQL. Минусы: т.к. запросы генерируются, а не составляются вручную, то теряются многие возможности конкретных СУБД. Собственно, задался вопросов, что лучше, иметь возможность писать код, который сможет работать на любой СУБД (стоит только подсунуть ему класс с реализацией всех методов под нужную СУБД и готово) или же писать код, который будет жестко завязан на определенной СУБД (скорее всего, именно на MySQL)? К примеру, в MySQL хочется использовать триггеры, но имея абстракцию в виде описанных выше классов, такое сделать проблематично. В общем, интересует мнение профессионалов, кто как реализует свои проекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2012, 19:25:03 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
ИМХО, если пишите "для себя", то такими вопросами вообще не стоит заморачиваться. Да и вообще мускул бесплатен и доступен на основных платформах без проблем, поэтому никакого смысла даже при широком распространении приложения - нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2012, 19:49:53 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
АригатоТрадиционно при реализации проектов я вводил поддержку разных СУБД, а не только MySQL. Для этого использовался абстрактный класс db_base, в котором были описаны основные методы работы в БД (выборка, вставка, удаления и т.д.). Для каждой СУБД писался свой класс, в котором была реализация всех этих методов под конкретную СУБД. Плюсы такого метода: написанный код можно использовать в проектах, которые работают не только с MySQL, но и с другими СУБД. Хотя на практике в основном приходится иметь дело именно с MySQL. Минусы: т.к. запросы генерируются, а не составляются вручную, то теряются многие возможности конкретных СУБД. Собственно, задался вопросов, что лучше, иметь возможность писать код, который сможет работать на любой СУБД (стоит только подсунуть ему класс с реализацией всех методов под нужную СУБД и готово) или же писать код, который будет жестко завязан на определенной СУБД (скорее всего, именно на MySQL)? К примеру, в MySQL хочется использовать триггеры, но имея абстракцию в виде описанных выше классов, такое сделать проблематично. В общем, интересует мнение профессионалов, кто как реализует свои проекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2012, 20:01:14 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
Любая универсализация должна быть основана на бизнес-сценарии. Потенциально можно делать программы, которые компилируются и под линух и под винду, но если все ваши пользователи только на винде, что это даст? Бизнес-сценарий позволяет ускорить разработку и внедрение и сэкономить время/деньги. Обратная сторона, про которую надо помнить - накопление технических долгов в системе. На практике получается какой-то баланс между универсализацией и оптимизацией, достаточный для конкурентности (или просто работоспособности внутреннего) продукта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2012, 20:02:04 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
На мой взгляд "поддержка любой БД" - это совершенно ненужная роскошь.Лучше писать явно под одну СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2012, 20:02:41 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
bdmalexНа мой взгляд "поддержка любой БД" - это совершенно ненужная роскошь.Лучше писать явно под одну СУБД. Все же очень многие открытые проекты строятся по принципу универсальности. Всегда в голове мелькает мысль, а что, если я захочу переделать проект под другую СУБД, ведь это придется пересматривать весь код. Другое дело просто реализовать один класс. Можно попытаться выйти на другой уровень абстракции, как минимум, надо исключить какие-либо SQL-конструкции из PHP-скриптов, хотя бы просто вынести куда-то все это дело в одно место. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2012, 20:31:54 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
Аригато, Для себя пишите как Вам хочется. А так, вообще-то, база данных, обычно, представляет гораздо большую ценность, чем Ваш говнокод на любом языке. Причём, судя по начальному посту, очень хреновый. Так что выбирайте: или работать программистом, или торговать шавермой в ларьке. Может, я обидные слова сказал, но фактом является то, что Вам очень тяжело будет стать программистом с таким подходом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2012, 20:56:34 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
Да и в крайнем случае можно взять какую-нибудь ОРМ уже готовую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2012, 21:08:36 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
Аригато, Даже если такая поддержка не нужна - писАть CRUD вручную это прошлый век, да и лениво очень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2012, 21:15:33 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
ShSergeПричём, судя по начальному посту, очень хреновый. Просто интересно, из какой части поста это вытекает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2012, 23:32:47 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
АригатоТрадиционно при реализации проектов я вводил поддержку разных СУБД, а не только MySQL каких например? postgresql,oracle,sqlite,firebird,mongodb... даже поддержку ВСЕХ популярных сделать огромная проблема, а еще в рамках одной БД есть разлиция на уровне версий, типов таблиц и т.д. такие вещи по хорошему надо закладывать изначально. прогнозировать рост проекта и под это дело выбирать БД. а в случае взрывной популярности когда выбранная бд не будет справляться даже после всех тюнингов и апгрейдов сервака(или кластера) - простой сменой на другую все равно ничего не выиграете. для хайлоада совсем другие требования, придется перепроектировать скорее всего почти все а не только уровень БД. а может и перейти на nosql. а заранее такие вещи предусмотреть все равно никто никогда не сможет АригатоК примеру, в MySQL хочется использовать триггеры, но имея абстракцию в виде описанных выше классов, такое сделать проблематично. не совсем понятно. повесили вы триггер на удаление, например. он сам и будет срабатывать при delete. чем вам помешает ваша абстракция? это же происходит на уровне самой бд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2012, 05:50:45 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
r uкаких например? postgresql,oracle,sqlite,firebird,mongodb... Смысл в потенциальной поддержки, а не в том, какие классы уже реализованы. Т.е. при необходимости можно реализовать класс для поддержки любой другой СУБД, при этом не внося никаких изменений в код самого проекта. r uне совсем понятно. повесили вы триггер на удаление, например. он сам и будет срабатывать при delete. чем вам помешает ваша абстракция? это же происходит на уровне самой бд. Ну так триггер надо еще создать, а как написать универсальный метод для создания триггера? Конечно, можно извратиться, но это уже слишком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2012, 08:29:58 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
АригатоСмысл в потенциальной поддержки, а не в том, какие классы уже реализованы. Т.е. при необходимости можно реализовать класс для поддержки любой другой СУБД, при этом не внося никаких изменений в код самого проекта. начнем с того что реализовать настолько универсальную абстракцию чтоб она могла работать с ЛЮБОЙ из существующих БД - почти невозможно. так как по сложности это превзойдет сам проект где эта абстракция будет использоваться. поэтому если есть именно цель - сделать поддержку кучи БД - то придется это делать, иначе это лишнее АригатоНу так триггер надо еще создать, а как написать универсальный метод для создания триггера? Конечно, можно извратиться, но это уже слишком. таблицы, представления, триггеры... - создаются обычно на уровне design time а не в real time. следовательно в вашем приложении БД-абстракция и не должна уметь это делать универсально. к тому же это делается только раз. и это можно прописать просто нативным кодом и выполнить через query. считаю что проблема притянута за уши считаю что распаляться на поддержку всего зоопарка БД нет смысла. если это не самоцель. само приложение же не абстрактно. оно призвано решать определенные задачи. под них и нужно подобрать БД и другие компоненты. и с ними работать. чем универсальнее попытаетесь сделать - тем больше потратите времени и тем тормознее будет работать. это очевидно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2012, 08:51:38 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
автор тем тормознее и глючнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2012, 11:20:43 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
Аригато, Вы совершаете типичную ошибку) Зачем писать свой велосипед, если уже есть написанные?(PDO) Работа с разными СУБД крайне редка. Игра не стоит свеч. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2012, 22:58:16 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
И как же PDO поможет заменить TOP на LIMIT ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2012, 23:15:58 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
Аригато, дай своё мыло я те свой класс скину ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2012, 23:32:36 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
АригатоbdmalexНа мой взгляд "поддержка любой БД" - это совершенно ненужная роскошь.Лучше писать явно под одну СУБД. Все же очень многие открытые проекты строятся по принципу универсальности. gallery2 ДВА РАЗА переписывали с нуля по этой причине. у них там просто рассадник проэктантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2012, 13:47:54 |
|
||
|
Нужна ли поддержка различных СУБД?
|
|||
|---|---|---|---|
|
#18+
netwindАригатопропущено... Все же очень многие открытые проекты строятся по принципу универсальности. gallery2 ДВА РАЗА переписывали с нуля по этой причине. у них там просто рассадник проэктантов. по факту, кстати, галерейка имеет среднюю распространенность и посредственную производительность, хотя по всем параметрам должна была стать иконой стандартом в своей нише. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2012, 13:49:05 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=145&tid=1465116]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 187ms |
| total: | 320ms |

| 0 / 0 |
