notes.jpgХозяйке на заметку:

Таблица содержащая данные типа справочник (список позиций товара к примеру),

имеет связь с таблицей заказов. Связана по полю артикул. Артикул при этом не является primary-key для таблицы заказов, но является ключевым в таблице товаров.

Для выборки данных по JOIN из этих таблиц, делаем так (пример):

В описании таблицы Товаров:

__PACKAGE__->set_primary_key('артикул');
__PACKAGE__->belongs_to('имя_связи_произвольное',  'Класс::Имя_таблицы_заказов','артикул (поле из таблицы заказов)');

В описании таблицы заказов:

__PACKAGE__->set_primary_key('какой-то первичный ключ');
__PACKAGE__->has_many('имя_связи2', 'Класс::Имя_таблицы_товаров', { "foreign.артикул" => "self.артикул" });

В последнем анонимном хэше прописано что связь производится не по primary key (без указания слов foreign и self - связывать будет пытаться по primary).

Теперь работаем с запросами так:

 $rs = $db->{connect}->resultset('Таблица_заказов')->search(
        { 'me.любое_поле' => 'критерий_для_поиска' },
        {
          join      => ['имя_связи2'],
          '+select' => ['имя_связи2.поле_из_таблицы_товаров'],
          '+as'    => ['алиас_для_выборки'],        }
        );

# извлекаем данные

 while ( my $r = $rs->next ) {
   item  => $r->get_column('алиас_для_выборки');# выборка из связанной таблицы
   notes => $r->поле_из_таблицы_заказов;# выборка из родительской таблицы
   });
    }

Why Perl?

| Нет комментариев | Нет трекбэков

Лучший ответ в moscow.pm:

Я считаю, что те кто переходит с перла на пайтон/руби - еретики и скорее всего попадут в ад.

Why Perl?

В процессе разработки одного модуля для внутренней системы заказчика, столкнулся с HTML-Template, UTF-8 и MSSQL. Все шло хорошо, пока не потребовалось вставлять в БД значения типа nvarchar, естественно юникодные, естественно на русском языке. Долго экспериментировал с DBIC, CGI-Simple (все эти модули были задействованы в проекте), и даже с типами данных в БД и кодировками файлов шаблонов, но проблема оставалась - в базе была полная абракадабра или в выводе клиенту - была полная абракадабра... То есть либо там либо там было все хорошо, но не вместе... Это меня навело на мысль, что проблема в шаблонах, а точнее в модуле их обрабатывающих.

Сегодня наконец-то решился на переход с activeperl на strawberry. Соблазнила возможность устанавливать модули со CPAN. Переход состоялся абсолютно без глючно, в том смысле что разработку я веду в ActiveState Komodo, и strawberry отлично подружился с этой IDE. Среди прочих приятностей - поддержка ppm репозиториев (можно ставить как со CPAN, так и с ppm репозитория).

Сегодня день рождения Perl, кто-то относится к этому серьезно, кто-то не очень :). Perl исполняется 22 года сегодня, хороший возраст. В этом возрасте человек уже полностью самостоятельный :), а наш Perl скоро станет папой (я надеюсь), с появлением Perl6 :).

Зарефрешим мемори:

18 декабря, 1987, Ларри Уолл выложил Perl 1 в общий доступ. ;-)

3 декабря в офисе Рамблер  прошла офлайн встреча участников группы Moscow.pm

Успел послушать только 4-х докладчиков, к сожалению, но и то что увидел/услышал - очень понравилось с точки зрения и организации и вовлеченности участников в процесс.

Хотел бы также в этой заметке прорекламировать очень полезный инструмент для freebsd администраторов и разработчиков от Андрея Костенко. Почему в этой заметке? Потому что об этой программе было рассказано на офлайновой встрече. Итак:

Утилита  для создания портов для FreeBSD из дистрибутивов CPAN. Действительно полезная вещь, ибо сам неоднократно мучался с этим. Помимо того что вещь полезная - она еще и очень friendly-used :).

P.S.

Надеюсь что презентации со встречи скоро появятся на соответствующих ресурсах.

 

 

Developing Web Applications with Apache, MySQL, memcached, and PerlВышла очень интересная, на мой взгляд книга: "Developing Web Applications with Apache, MySQL, memcached, and Perl" by Patrick Galbraith. Самое удивительное что ее уже можно найти в сети :).

 

Skype давно уже открыл свой API для сторонних разработчиков. Написано уже масса библиотек для работы с его протоколом для разных языков. Что нам может предложить perl по этому поводу?

Порыскав на cpan, нашел всего лишь 1 модуль - SkypeAPI для поставленной задачи (работа с протоколом Skype). Но это «ВСЕГО ЛИШЬ» преждевременно, как будет рассмотрено ниже - этот модуль покрывает основную часть наших потребностей работы со Skype.

Посмотрев скромную документацию по модулю, а также попытавшись разобраться в иероглифах (сайт с DEMO ROBOTS) - понял что надо идти своим путем, то есть читать документацию по API на сайте skype и проверять все на практике.

CGI::FormBuilder  - очень удобный модуль для работы с web-формами, особенно когда в проекте их много, и в них много элементов. При этом он активно используется в связке с Catalyst'ом, но им можно пользоваться и отдельно, что я и рассмотрю в этой заметке. Модуль работает в связке с TT или HTML-Template, и кажется, он работает даже с Mason.

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

В рассылке moscow-pm@pm.org сегодня промелькнул линк на очередную оценку популярности языков по 2009 году, основанную на результатах соревнований. Сравнивая 2008 и 2009 год по итогам интересующего нас Perl (в первую очередь), можно сказать о небольшом росте его популярности в абсолюных единицах, но давайте посчитаем в процентном соотношении его рост.

Последние комментарии

  • sherzodr: Вообщето load() не обезательно использовать. Да нет, его лучше вообще читать дальше
  • Monks: Хм. Надо попробовать обновиться. Судя по: Fix mssql common tests читать дальше
  • ribasushi: А если проблемы с Loader все еще не решены - читать дальше
  • khizhaster: Дык Loader генерит всё, как в документации по DBIx::Class. Главное читать дальше
  • mollenhauer: Loader хорош, но иногда стоит понимать что к чему в читать дальше
  • Monks: Спасибо за развернутый комментарий. Но при работе с Loader'ом у читать дальше
  • khizhaster: Еще советик :) Что бы не мучаться и руками не читать дальше
  • Monks: Для соединения использовал DBD::ODBC (хотя применительно к centOS - немогу читать дальше
  • yashin.dm: Благодарю за решение т.к. вскором времени столкнусь с связкой HTML-Template читать дальше
  • Monks: Да - раздел по memcached - это собственно то ради читать дальше

Февраль 2011

Вс Пн Вт Ср Чт Пт Сб
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28          

Категории


 


 

Page copy protected against web site content infringement by Copyscape