SmartDB - умный драйвер СУБД.

Статус
В этой теме нельзя размещать новые ответы.

korchasa

LIMB infected
Автор оригинала: Alexandre
дело привычки... кто-то пользуется чистым SQL, кто-то доктриной или иной srm... кто-то ADODB... а кто-то, в том числе и я, пишет свои классы.
думаю, оффтоп раздувать, как удобнее использовать - смысла нет, 100 раз уже обсуждалось, флеймовая тема.
имеет смысл срвнить с Доктриной, ADO, ZF. что есть, что нового, чего не хватает для 100%-го внедрения в массы.
Это не оффтоп. Я пользуюсь limb'ом, но некоторые вещи нет смысла обрабатывать автоматом, там, ИМХО, проще использовать RawSQL, а не пытаться сделать гениальный конструктор запросов, для которого нужно будет делать несколько уровней кеша :)

А вопрос свой я задал, что бы автор (или кто-то еще) сказал в чем кайф о этой штуки. Я понимаю плюсы других библиотек. А смысла этой честно говоря не очень догоняю.
 

atv

Новичок
Слабовато. В квики самый большой метод пицот строк, а здесь "public function cachedFetchrowset()" всего лишь 247. Маловато будет. Недооптимизировал. Хотя понимаю, это только альфа. Ждёмс следующих версий.
 

Андрейка

Senior pomidor developer
из примеров
>> ->where(array('id <'=> 10))
оригинальный подход

эта штука назваецца "риталин", повышает интеллектуальные спобосности без того гениального драйвера, отпускается без рецепта
 

Alexandre

PHPПенсионер
>> ->where(array('id <'=> 10))
оригинальный подход
Андрейка, хаить мы все умеем, а твои предложения??

-~{}~ 15.02.08 21:05:

А вопрос свой я задал, что бы автор (или кто-то еще) сказал в чем кайф о этой штуки.
korchasa ктож тебе кроме автора - чего скажет? Для того, чтоб сказать, надо покрутить, повозиться, найти плюсы и минусы (минусы уже нашли ... 247 строк ). На это время надо. Мой модуль, например, только два человека со всего Форума установило, а сколько его хаяло ;).
раз топик на 3х постах не завяз, значить есть интерес к данной разработке :).
 

korchasa

LIMB infected
Автор оригинала: Alexandre
Андрейка, хаить мы все умеем, а твои предложения??
Ну согласитесь было бы логичнее использовать отдельный метод для ограниченного типа операций:
Код:
->where('id')->less(10)
Длину метода where это тоже сократит ;)
 

Alexandre

PHPПенсионер
->where('id')->less(10)
Длину метода where это тоже сократит
Ну типо того:
$db->where('id')->less(10);
$db->where('name')->equ('Super'); нормальный подход.

а вот пересечения и объединения таблиц ?
 

berkut

Новичок
Мой модуль, например, только два человека со всего Форума установило, а сколько его хаяло .
а где логика?=) все посмотрели-не понравилось, все об отписались - как резалт, только 2 чела установили
 

Андрейка

Senior pomidor developer
Alexandre
нинаю.. имхо, пользоваться оопшными конструкторами запросов, которые из "запроса" в виде
PHP:
$obj->select('p.a');
$obj->select('p.b LEFT JOIN table1 c USING(id)');
$obj->from('table', 'p');
$obj->where('id>=', $a);
$obj->where('OR id=NULL /*', '0*/');
создаст мне sql запрос как бог на душу пошлет - удовольствие сомнительное ради возможности поменять mysql на postgresql

просто "умный" драйвер должен такие операции как-то поумнее обрабатывать, не так ли?
 

korchasa

LIMB infected
Автор оригинала: Alexandre
korchasa ктож тебе кроме автора - чего скажет? Для того, чтоб сказать, надо покрутить, повозиться, найти плюсы и минусы (минусы уже нашли ... 247 строк ).
Что бы люди захотели повозиться нужно их чем-нибудь завлечь. Насчет минусов, которые даже без запуска бросаются в глаза это жёсткая завязка на один cache-storage, отсутствие тестов(!!!), плохой интерфейс(ну нельзя же миксовать вот_такие названия методов и переменных, с такимиВот)
раз топик на 3х постах не завяз, значить есть интерес к данной разработке :).
Ну мне он интересен хотя бы тем, что является аналогом limbDbal, и до просмотра кода показалось, что, возможно, там есть что-то, что можно перенять.
 

Alexandre

PHPПенсионер
а где логика?=) все посмотрели-не понравилось, все об отписались
в том-то и дело, хаяли не посмотрев... ну речь-то не об этом...
Андрейка, приведеный тобой код, явно не имеет смысла. в этом я солидарен. ИМХО, код, нижепредставленный более наглядней.:
PHP:
$obj->select('p.a'); 
$obj->joinTable('p.b' , 'id'); 
$obj->from('table', 'p'); 
$obj->where('id')->le( $a); 
$obj->where('id')->eq(NULL) ;
Но, если автор пойдет по такому пути - он напишет еще одну Доктрину.
Я, не сторонник srm,
лично моя практика: использования sql запросов, чем проще, тем луше.
чтоб его можно было наглядно взять из текста и запустить в консоле.
наиболее сложные запросы - складывать в процедуры, производительность, да и безопастность только выиигрывает от этого.
 

korchasa

LIMB infected
Автор оригинала: Alexandre
Андрейка, приведеный тобой код, явно не имеет смысла. в этом я солидарен. ИМХО, код, нижепредставленный более наглядней.:
PHP:
$obj->select('p.a'); 
$obj->joinTable('p.b' , 'id'); 
$obj->from('table', 'p'); 
$obj->where('id')->le( $a); 
$obj->where('id')->eq(NULL) ;
Но, если автор пойдет по такому пути - он напишет еще одну Доктрину.
Ну причем здесь Doctrine? Она ORM, а это только dbal. Хороший слой для работы с базой, конечно, сильно упрощает ORM, но для ORM'а важнее строгость чем лаконичность интерфейса.

Я, не сторонник srm,
лично моя практика: использования sql запросов, чем проще, тем луше.
чтоб его можно было наглядно взять из текста и запустить в консоле.
наиболее сложные запросы - складывать в процедуры, производительность, да и безопастность только выиигрывает от этого.
Ну это кому, как удобнее. Хотя приведенный пример я бы тоже на чистом sql написал :)
 

Alexandre

PHPПенсионер
Ну мне он интересен хотя бы тем, что является аналогом limbDbal, и до просмотра кода показалось, что, возможно, там есть что-то, что можно перенять.
и что же там интересного, идей всмысле?
Насчет минусов, которые даже без запуска бросаются в глаза это жёсткая завязка на один cache-storage
Да, лучше сделать так:
PHP:
$db = new .... ;
$db->cache( new fileCache( $cachePath)  );
$db->setСacheId('1234567890');
лично я сacheId формировал как md5 от запроса.

-~{}~ 15.02.08 21:47:

Хотя приведенный пример я бы тоже на чистом sql написал
во-во, не наглядны эти все ORM
 

korchasa

LIMB infected
Автор оригинала: Alexandre
и что же там интересного, идей всмысле?
Ничего, кроме примера работы с shmop'ом :)
...лично я сacheId формировал как md5 от запроса.
Весь прикол в том, что делать кеш на этом уровне практически бессмысленно. На простых сайтах это еще не нужно, а на сложных уже не будет работать :)
во-во, не наглядны эти все ORM
Ну нельзя быть настолько категоричным :) Просто запросы с использованием ООП-синтаксиса читать сложнее, чем SQL.
 

Alexandre

PHPПенсионер
такой кэш уже присутствует в mysql вообще-то))
Андрейка, мне об этом тоже говорили, когда обсуждали мой модуль...
Да, он присутствует, но только на текущую коннекцию, только на небольшое время...
я бы на этот кеш не расчитывал. Есть более мудное и готовое решение mysql_proxy, но там как-то сложно с управлением кеширования, т.е. тебе надо сперва что-то писать в программе, а потом изощряться в настройках прокси. А потом все это перенастраивать...
так что - это слабый аргумент

кеширование данных, в отличие от кеширования HTML, при быстром шаблонизаторе - наиболее правильный подход.

Весь прикол в том, что делать кеш на этом уровне практически бессмысленно. На простых сайтах это еще не нужно, а на сложных уже не будет работать
почему не будет - у меня работает же. И мой, кеширующий модуль применять собираются в других проектах.
Если проект распределенный, т.е. как минимум на два WEB-сервера, то имеет смысл сделать кеширующего демона (что в принципе у меня и сделано) или установить мс_прокси. Но такой проект должен иметь от 50к посетителей.
практика показывает, что на одном серваке проект вполне может тянуть до 40к-50к (правда производительностть зависит от логики)

Ничего, кроме примера работы с shmop'ом
можно поподробнее, изввини за темноту, что такое shmop
 

berkut

Новичок
Alexandre вот вроде уже старый/зрелый и умный человек, а толку... первая сцылка в гугле на "shmop" выводит на! php manual - shmop
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху