metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-06-29 06:21 pm

Обучение частным случаям частных реализаций

http://d4s.livejournal.com/210142.html
Вопрос про обучение SQL. Не про продажу человеко-часов конкретному кастомеру с конкретной СУБД.
В комментариях ад содома и гоморры, с приведением каких-то дичайших конструкций из частных реализаций.

Людей нужно хотя бы обучить тому, что такое реляционная модель, что такое индексы и как вообще связаны эти буковки с результатом. А уж конкретные извращения можно изучить в процессе работы с конкретной БД, очевидно, что засирать этим голову ДО понимания базовых вещей совершенно не нужно.

[identity profile] metaclass.livejournal.com 2012-07-01 10:07 am (UTC)(link)
Какое редко? Ребе, у меня 99% опердени состоит из таких и более сложных запросов.

Другое дело, что логику оттуда надо действительно нахер выкинуть, но конкретно where/index by/group by надо выполнять в БД. А поскольку там все занормализовано - в эти выражения попадают поля из связанных таблиц и в итоге я в душе не ебу, как это написать на ORM так чтобы он сгенерировал нужный SQL запрос.

[identity profile] w00dy.livejournal.com 2012-07-01 10:17 am (UTC)(link)
Ну в чём пробелмы то. where генерится чрезе Where (), всякие group by - при выборке подчинёных объектов. Как генерить запросы - но вы ведь чем-то думали когда писали sql, вот аналогично и при написании кода, только у вас не таблица A и B, а объекты А и B и связи между ними. Всё просто.

[identity profile] metaclass.livejournal.com 2012-07-01 10:46 am (UTC)(link)
И работает только для MSSQL провайдера, только на с# и только в одной версии дотнета, да.

[identity profile] w00dy.livejournal.com 2012-07-01 10:53 am (UTC)(link)
Ну почему? Linq вроде как nHibernate поддерживает, есть провайдеры у DevExpress под кучу баз. Разботает на всём .net-овском есть. Запросы ведь не обязательно писать в этом sql-ном стиле. Можно и T ().Where (u => u.Id == userId).Select (u => u.Name).First ()