?

Log in

free_bin in webdistortion

Bitrix vs. Здравый смысл

В битриксе, как и во многих других ЦМСках и движках, есть такая штука как "группы пользователей" (ака "роли"). В большинстве случаев привязка реализуется "таблицей связи". Какая уж это нормальная форма даже не важно.

Тблица users:
| id | login| ... |

Таблица: groups
| id | title | ... |

И таблица связи user_to_group:
| user_id | group_id | ... |


Пока всё хорошо. И вот тут на сцену выходит наш сегодняшний лауреат премии "зато красиво": группа пользователей "Зарегистрированные пользователи". То есть все, кто есть в базе -- они зарегистрированные. Но мало того, мы это группой должны подтвердить. Я понимаю, что это цена гибкости. Но кто-нибудь когда-нибудь РЕАЛЬНО этой гибкостью пользовался?!

Судите сами. Проекту три месяца. Таблица связи:

SELECT `GROUP_ID`, COUNT(*) FROM `b_user_group` GROUP BY `GROUP_ID`;

GROUP_IDCOUNT(*)
1 3
3 35233
4 1
5 1
6 13
7 10
8 4
11 4

Как вы уже догадались группа с ID = 3 -- это и есть "Зарегистрированные пользователи"...

Comments

Кажется мне, это не цена гибкости. Если убрать эту псевдогруппу, существует вероятность того что битриковые SQL запросы (а они всем запросам запросы) переполнят чашу терпения базы.

(Anonymous)

Ты имеешь в виду для фильтрации?

А чем отличается джоин с имеющимися записями от джоина с отсутствующими? ИМХО, пустой райт джоин отработается быстрее, чем райт джоин, который выберет эннадцать тысяч строк.

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