powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Покритикуйте кот(оберька для MySQL)!
25 сообщений из 133, страница 3 из 6
Покритикуйте кот(оберька для MySQL)!
    #37785541
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няша рррПрошу назвать хотя бы один фреймворк, класс где таково не произойдёт.
Об том и речь.

Так на кой вы пишите очередную несерьезность, а не пользуетесь уже готовыми и проверенными?
Очень нравится, когда на очередном велосипедике слетает цепь и ты на обочине по локоть в смазке?
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785544
Няша ррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.DragonНяша ррртото сложно сообразить как джоины сделать
$db->select('table1 as t1 LEFT JOIN table2 as t2 ON t1.id = t2.pid', $cols, $where);

Ну и смысл? Пол запроса пришем вручную (еще и в кавычки забыли облачить имена таблиц), а половину автоматизируем.

Что мешало написать пару функций для обработки потенциально опасных параметров, а дальше юзать стандартные средства? Но хочется ж и самому пописать, чтобы понять, почему стандартные средства гибки ровно на столько, а не больше, и какие проблемы поджидают в попытках добиться бОльшей гибкости. Это нормальное желание. С этим я даже спорить не буду. Но вы лучше устремите свои усилия в сторону создания практических задач для использования своего кода. Вот тогда и станет видно, что вот до такого момента все хорошо. Дальше уже выгоды - ноль. А для такой системы было бы лучше совсем иначе поступить. А вот теперь я уже достаточно наигрался, насмаковался и уже вижу где месил воду в ступе ради практики, а что из кода действительно полезно.

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

Без конкретных систем, обсуждать такие модули применительно к вакууму - бесполезно. Ибо очевидно, что они не являются уневерсальными конструкторами любых запросов на все случаи жизни, а "автоматизируют" лишь элементарные вещи элементарными способами, что в общем-то не интересно для обсуждения.

Как говорится, изюму нету (с)

Ничего универсального нет.
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785551
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няша рррНичего универсального нет.
Очевидно.
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785556
Няша ррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может на github эти три класса выложить?
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785560
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АД
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785561
Няша ррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett, ИЗРАИЛЬ
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785568
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я всю тему не читал, только 1 страницу осилил и то мельком.
Мне бы было не очень удобно использовать эту штуку, т.к. она кроме неудобства ничего не дает.
Поглядите, например, реализацию ORM в Yii (не путать с конструктором запросов, хотя и его можно тоже посмотреть)
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785795
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я всегда говорю, напишите хелловорлд. В контексте баз данных, хелловорлд - это телефонный справочник. Три-четыре таблицы в БД понадобятся, если не наворачивать. Возможно, понадобятся х-ые процедуры, функции и триггеры.
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785823
Няша ррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSerge... напишите хелловорлд ... хелловорлд - это телефонный справочник ... понадобятся х-ые процедуры, функции и триггеры.

Не понадобятся, уже написал, все работает как часы.
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785845
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няша рррShSerge... напишите хелловорлд ... хелловорлд - это телефонный справочник ... понадобятся х-ые процедуры, функции и триггеры.

Не понадобятся, уже написал, все работает как часы.
Отлично. Теперь остаётся только сравнить где больше буков, то есть, при использовании Вашего фреймворка, или при использовании стандартного подхода. Если в первом случае меньше и написать проще, то имеет право на жизнь. А если нет - то уж пардон. Я ничего же не говорю. Просто тест такой.
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785869
Няша ррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSerge,

три строчки экономия на каждом запросе
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785873
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а джоинов нет
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785880
?????
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторНе понадобятся, уже написал, все работает как часы.
Код: php
1.
2.
3.
$user = $db->find('users', 1);
$user['pass'] = 'test';
$db->update('users', $user);



Код: php
1.
2.
3.
$user = $db->find('users', 1);
$user['roles'] = array('admin', 'poweruser', 'simpleuser');
$db->update('users', $user); //---------?!-------------
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785907
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonНяша рррПрошу назвать хотя бы один фреймворк, класс где таково не произойдёт.
Об том и речь.

Так на кой вы пишите очередную несерьезность, а не пользуетесь уже готовыми и проверенными?
Очень нравится, когда на очередном велосипедике слетает цепь и ты на обочине по локоть в смазке?

Ээ, ну опять же в том же ORM Yii все джоины и много чего еще прекрасно инкапсулируется в OOP код. Но тут немножко другая песня. В построителе запросов CI есть методы join:

Код: php
1.
2.
3.
4.
5.
$this->db->select('*');
 $this->db->from('blogs');
 $this->db->join('comments', 'comments.id = blogs.id');

 $query = $this->db->get();



Если не сталкивались, обязательно посмотрите
http://codeigniter.com/user_guide/database/active_record.html
В Yii похоже http://www.yiiframework.com/doc/guide/1.1/en/database.query-builder
Yii active record http://www.yiiframework.com/doc/guide/1.1/en/database.ar
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785918
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[offtop]
После раскуривания SQLAlchemy все остальные ОРМы смотрятся как ...
[/offtop]
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785925
Няша ррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: php
1.
2.
3.
4.
5.
6.
$user = $db->find('users', $_GET['id']);
if ($user) {
$user['pass'] = 'qwerty';
$db->update('users', $user, $_GET['id']); 
}
else { /* Пользователь не найден */ }



JOIN можно реализовать так попробовать, но мне он не особо нужен как и конструктор запросов
Код: php
1.
$db->selectAll($db->join($table1, $table2, $on), $cols, $where, $limit);
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785932
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор$db->selectAll($db->join($table1, $table2, $on), $cols, $where, $limit);
Вот это уже может моск сломать.
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785937
?????
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: php
1.
2.
3.
4.
5.
6.
$user = $db->find('users', $_GET['id']); //страница может не прислать $_GET['id']!!!
if ($user) {
$user['pass'] = 'qwerty';
$db->update('users', $user, $_GET['id']); //жесть! если мы получили пользователя, то и ИД его нам уже известен!
}
else { /* Пользователь не найден */ }


спрошу ещё раз
Код: php
1.
2.
3.
$user = $db->find('users', 1);
$user['roles'] = array('admin', 'poweruser', 'simpleuser');
$db->update('users', $user); //---------?!-------------
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37785949
Няша ррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
?????, трудный штоле?


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    private function _prepare($data) {
        foreach ($data as &$v) {
            if (is_null($v)) {
                $v = 'NULL';
            }
            else if (is_bool($v)) {
                $v = $v ? 'TRUE' : 'FALSE';
            }
            else if (is_string($v)) {
                $v = $this->quote($v);
            }
        }
        return $data;
    }



Переписываем

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    private function _prepare($data) {
        foreach ($data as &$v) {
            if (is_null($v)) {
                $v = 'NULL';
            }
            else if (is_bool($v)) {
                $v = $v ? 'TRUE' : 'FALSE';
            }
            else if (is_array($v)) {
                $v = $this->quote(implode($v));
            }
            else if (is_string($v)) {
                $v = $this->quote($v);
            }
        }
        return $data;
    }



Хотя мне непонятно зачем массив, когда чтобы набрать строку нужно меньше символов, поэтому мне такой функциАНАЛ не нужен
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37786002
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettа джоинов нет
За последних пять лет, если не больше, не написал ни одного запроса без соединений таблиц (джойнов). :)
Даже хелловорлд (телефонный справочник) предполагает соединение минимум двух таблиц: справочник мемберов и справочник телефонных номеров (у каждого мембера их может быть несколько).
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37786042
?????
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторХотя мне непонятно зачем массив, когда чтобы набрать строку нужно меньше символов, поэтому мне такой функциАНАЛ не нужен
ну непонятно и ладно...! потом разберёшься ;)

Успехов!!!

гыгы: набрать строку (C)
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37786043
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няша рррмне такой функциАНАЛ не нужен
А где посмотреть ТЗ на функционал, который тебе нужен?
Интересный диалог получается.
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37786293
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeHettа джоинов нет
За последних пять лет, если не больше, не написал ни одного запроса без соединений таблиц (джойнов). :)
Даже хелловорлд (телефонный справочник) предполагает соединение минимум двух таблиц: справочник мемберов и справочник телефонных номеров (у каждого мембера их может быть несколько).
Что вреш уж)
ВОзмем к примеру какой нить кроновский скрипт - что от него требуеться? Чтобы он что нить сделал но при этом не грузил больно сильно базу, так как паралельно сайт работает. Ну к примеру надо по списку транзакций обновить баланс пользователей.
Ну и если ты допустим сделаешь какой нить мошнецкий запрос выборки всех юзеров джойн транзакции (юзеров 1000,000, и у кажого по 100 трназакций) получим зависание сайта минимум на пару минут.

Если же вначале всех юзеров вытащить,и для каждой таскать отдельными запросами транзакции, получим скрипт хоть и будет выполняться в два раза дольше, база будет доступна для сайта нормально.
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37786296
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няша рррmiksoftпропущено...
А в серьезных запросах ( с подзапросами и т.д.) туда просто большая часть запроса уедет. И обертка превратится в тыкву фантик.

Прошу назвать хотя бы один фреймворк, класс где таково не произойдёт.
Поглядите как вам уже товаришь Hett минимум 3 раза написал как все реализовано в Yii. В их реализации паттерна ActiveRecord как обертки над базой все джойны или дозагрузки данных (lazy load) происходят автоматом, вам останеться только настроить модели и о SQL можно правтикечки забыть
...
Рейтинг: 0 / 0
Покритикуйте кот(оберька для MySQL)!
    #37786297
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это не исключает джоинов
...
Рейтинг: 0 / 0
25 сообщений из 133, страница 3 из 6
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Покритикуйте кот(оберька для MySQL)!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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