(no subject)
Tuesday, September 5th, 2006 16:28М-да. Следует отметить, что такого уникального способа добраться к базе данных я ещё не встречал. Сейчас читаю тонны кода и охреневаю. Чем дальше, тем сильнее охреневаю. Мне казалось, что я видел достаточно wrapper'ов к БД, но такое вижу впервые.
Запрос к БД строится, как дом. Как корабль на верфи! И всё это - "по канонам ООП" (в плохом смысле этого выражения).
К примеру, для SELECT'а отдельно составляются разные части. Добавление условия '...AND FooBarActive=1' (на верхнем уровне абстракции) происходит просто и изящно, всего за пяток строк кода. Зато запрос с COUNT(*) тащит за собой кучу JOIN'ов, не использующихся в WHERE.
Ах да. Я не говорил ещё, что в БД все поля почему-то названы в CamelCase? Ну так добавьте к портрету.
Запрос к БД строится, как дом. Как корабль на верфи! И всё это - "по канонам ООП" (в плохом смысле этого выражения).
К примеру, для SELECT'а отдельно составляются разные части. Добавление условия '...AND FooBarActive=1' (на верхнем уровне абстракции) происходит просто и изящно, всего за пяток строк кода. Зато запрос с COUNT(*) тащит за собой кучу JOIN'ов, не использующихся в WHERE.
Ах да. Я не говорил ещё, что в БД все поля почему-то названы в CamelCase? Ну так добавьте к портрету.

no subject
Date: Tuesday, September 5th, 2006 01:38 pm (UTC)Неиспользуемые JOIN-ы или просто неиспользуемые таблицы в where - это одна из моих любимых тем. Особенно, если они по паре (десятков) миллионов строк ;)
no subject
Date: Tuesday, September 5th, 2006 01:39 pm (UTC)no subject
Date: Tuesday, September 5th, 2006 01:57 pm (UTC)no subject
Date: Tuesday, September 5th, 2006 02:10 pm (UTC)SELECT ca.*, cs.Title AS SectionName, cs.SeoTitle AS SectionSeoTitle, c.Id AS SeoId FROM foo_core_articles ca LEFT JOIN foo_core_sections cs ON (cs.Id=ca.SectionId and cs.Lang = ca.Lang) LEFT JOIN foo_core_contiguities c ON (c.Section='article' AND c.Lang='en' AND c.SectionId=ca.Id) WHERE ca.Lang='en' AND ca.SectionId = '1' AND (ca.Visibility LIKE '%,2,%' OR ca.Visibility = '*') ORDER BY Position LIMIT 0, 5
s/brand/foo/
no subject
Date: Wednesday, September 6th, 2006 07:17 am (UTC)no subject
Date: Wednesday, September 6th, 2006 08:17 am (UTC)Да, весьма загадочно. И ведь кто-то это всё придумал...