Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Ну как же все таки научиться проф.верстать(вопрос внутри)?

Лучший ответ:
Все в порядке, я начинал по видеоурокам, а дальше сам. Почти так же как и вы недоверстывал макеты до конца. Многое не выходилo, не понимал зачем нужен позитион релатив и многое другое. Но в процессе когда я достаточн хорошо усвоил то, что знал, начал постепенно повышать свой уровень. Сначала я доверстал старые макеты, потом начал верстать более сложные макеты. Нечего такого в этом нет, процесс обучения тернист и даже с сиэсэс с первого захода разобраться сложно, если до этого не имели дело с программированием. Не особо зацикливайтесь на этом, я вот например уделял этому по 3-4 часа в день и не особо парился когда не получалось, а просто вставал из за компа и ходил с друзьями побухать ну или в сауну. Советую делать так же. Удачи в обучении дружище

Худший ответ:
Раз уж вы выложили несколько замечаний по коду (не глядя на сам шаблон):Используйте семантические тэги, как уже писал Андрей Б., не тулите сплошные divы, у вас нет ни одного h заголовкаНе заворачивайте блочные элементы в строчные - li в a, это не запрещается спецификацией html5, но лучше так не делатьИспользуйте сокращенные значения например для margin
Вопрос: Как отключить адаптивность у navbar'а в Bootstrap?

Лучший ответ:
У бутстрапа есть посвященная этому тема на сайте
getbootstrap.com/getting-started/#disable-responsive
Вариантов несколько перебилдить бутстрап например, 
но самое просто вам воткнуть стиль или прописать в css
Вот пример стиль

Вот css
.nav-default {
min-width: 970px !important;
}

Худший ответ:
Я решил задачу так
<meta name="viewport" content="width=device-width, initial-scale=0.75">
Вопрос: Почему iptables не блокирует входящий трафик с IP адреса на 80 порт?

Лучший ответ:
-d  destination
ваше правило гласит:
входящие пакеты направленные на адрес (ип, что вы баните) и на порт 80 - отбросить.
Вы вообще как это себе представляете?
-s ban_ip  и все будет хорошо

Худший ответ:
Если стоит прокси, то попросите провайдера отправлять x_forwarder_for и блокируйте по нему средствами фронтенда.
Вопрос: Порог вхождения в язык. Чем меньше, тем лучше?

Лучший ответ:
На массу некомпетентных людей влияет не столько порог вхождения, сколько популярность языка. Таким образом у php масса некомпетентности больше чем у python несмотря на то, что у python порог вхождения меньше.

P.S. Это все догадки, а не где-то прочитанные исследования.

Худший ответ:
Порог вхождения может играть хоть какую-то ощутимую роль только в тех случаях когда он действительно различается в разы, например как если сравнивать Assembler и PHP.
А для вышеприведенных вами мейнстрим-языков порог вхождения примерно одинаков: Покажите, мне хотя бы одного C/C++ программиста, который бы сказал что никогда не смог бы осилить например php или python?

Для мейнстрим языков большее влияние оказывает то, насколько языковые средства покрывают определенные круги задач. Я умышленно сказал не языки как таковые, а языковые средства (язык и все то, что к нему прилагается), поскольку я имею ввиду всю совокупность которую тащит за собой язык: сам язык, среда испольнения, стандартные и нестандартные библиотеки, среда разработки, документация прилагающаяся к языку или гуглимая отдельно, а также наличие успешного-неуспешного опыта применений данных языковых средств в конкретных задачах на рынке.
Вопрос: Диагностика качества интернет соединения?

Лучший ответ:
Пусть приложение работает так как будто всегда плохое соединение.

Худший ответ:
Если разово — pingtest.net
Усли постоянно — писать пинг до Яндекса или аналогов в лог и демонстрировать его.
Вопрос: Как дебажить javascript?

Лучший ответ:
Могу посоветовать очень хорошее видео, с FrontTalk –vimeo.com/107580454

Худший ответ:
Для мозиллы есть дополнение - WebDeveloper - там есть кнопочка - показать весь js, который на странице. Можно пробежаться по нему.
Можно вырубить весь js и подключать по одному, чтобы понять где делаеться инициализация плагина на замену чекбокса
Вопрос: Как нарисовать полукруг в CSS?

Лучший ответ:
jsfiddle.net/ffvv40wr/1
Можно реализовывать как с помощью border-radius, так и с помощью SVG.
Безусловно, оба варианта лучше использовать в фоне, иначе придётся задавать абсолютное позиционирование (или фиксированное, что ещё хуже).
Использование SVG даёт преимущество — задав только высоту и ширину, можно не беспокоиться про радиус закругления (что и видно на 3-м примере, когда для :before придётся менять ширину).

Худший ответ:
или border radius
Вопрос: Как можно загрузить приложение сразу в несколько магазинов?

Лучший ответ:
Открыть несколько вкладок , заполнить все данные и потом насчет 3,2,1 переключаетесь между вкладками и добавляете

Худший ответ:
какие магазины вы имеете ввиду?
Yandex.Store, можно. там вообще все элементарно.
просто можно указать ссылку на play маркет и yandex сам скопирует все данные из google play маркета
Вопрос: Ramdisk в Mac OS X

Лучший ответ:
на 512М:
diskutil erasevolume HFS+ "ramdisk" $(hdiutil attach -nomount ram://1165430)


Худший ответ:
значение 1165430 — это в блоках, рассчет производить умножая число Кб, которое требует для диска на 2048.
1Gb = 1024*2048 = 2097152
Вопрос: Без опыта во фриланс, руби?

Лучший ответ:
Без опыта и во фриланс - стремно.
Выучить рельсы - реально и зависит от вас.

Худший ответ:
Если без опыта во фриланс, то лучше PHP для начала
Вопрос: Как узнать разрядность ubuntu?

Лучший ответ:
uname -a или arch

Худший ответ:
/etc/os-release содержит информацию об установленной системе (бывает файл называется SuSE-release например)
Вопрос: Как автоматически посчитать людей в салоне автобуса или помещении?

Лучший ответ:
100% точности не получится.
Самый оптимальный вариант это фотоэлементы на вход-выход. Во многих ТЦ именно так и подсчитываю.

Худший ответ:
Каждому пассажиру выдавать RFID-метку и считать количество её срабатываний.

Экзотичнее, распознавать количество лиц, которые проходят сквозь двери. Смотря какая статистическая погрешность и какие требования. Если можно иметь большую погрешность, то можно взвешивать автобус на специальных весах, и оценивать количество живого мяса в салоне, а из него высчитывать кол-во пассажиров.
Вопрос: Можно ли решать олимпиадные задания про программированию на PHP?

Лучший ответ:
можно, язык программирования для олимпиадных задач по программирования важен настолько же, насколько эти самые олимпиадные задачки для реальных навыков.

Худший ответ:
ну, от задач зависит..
клавиатурный драйвер написать вряд ли получится, а вот общие задачи и реализацию алгоритмов - почему нет.
Вопрос: Две ORM модели для C# и Python. Нужно решение получше

Лучший ответ:
Нужен дополнительный слой абстакции. Скажем, берём БД+EF, пишем веб-сервисы на WebAPI, разворачиваем WebAPI. Из кода приложений на C# обращаемся по REST, из Python так же.

Худший ответ:
Хм. При использовании Code First Migrations для Entity Framework лезть в структуру sql вообще не надо, т.к при изменении моделей в контексте вызывается команда, которая обновляет структуру базы соответственно текущим модеям — т.е как раз версионность, и сохраняет текущую структуру ДБ у себя в коде, т.е при развертывании в чистую базу ве эти шаги миграций применяются последовательно.

Кстати, а почему вторым языком выбран питон и как ведется взаимодействие проектов?
Вопрос: Freelancer.com забрал у меня деньги за конкурс! Что делать?

Лучший ответ:
Сделайте так:
1. Идёте в Twitter, находите Freelancer.com, подписываетесь на них
2. Пишите твит, в котором рассказываете свою ситуацию (Только адекватно, без эмоций)
3. Твит появится на странице их профиля, что уже для них плохо.
4. Просите знакомых сделать максимальный репост
Я бы написал им письмо, что пропиарю их везде где только можно, приведите несколько примеров.
Удачи :)

Худший ответ:
Если вся работа была выполнена, в суд!) Все окупится кроме времени)
Вопрос: С чего начать обучение для фриланса?

Лучший ответ:
И так, с чего начать обучение:
1.Самый низкий порог вхождения у языка PHP. Начинайте именно с него
2.Изучите популярные CMS: WP, DLE, Joomla и т.д. Очень много заказов есть типа "Создать сайт", причем экзотики в 2 из 3 проектах не нужно. Здесь минус в том, что школоты тут полно и цену они сбивают весьма сильно...
3.Далее категория заказов "А можно ли сделать вот так". Сводится все это к разработке/переработке модулей на все тех же CMS. Нужно учить PHP + API этих самых CMS. Возьмите один движок и копайте по нему в эту область, не рвитесь сразу за всеми. Порог вхождения тут тоже не велик, но здесь больше голодные студенты обитают
4.Когда перерастете уровень дополнений/модулей, переходите к фреймворкам. Сейчас самый популярный Yii. Фреймворк позволяет Вам делать какие-то уникальные приложения, которые достаточно тяжело реализовать на готовых системах. Здесь ценник по существеннее, чем в первых двух, т.к. школота в силу своих умственных способностей сюда влезть не может.
Теперь расскажу как вообще этому обучаться на своем примере. Я делаю так:
1.Открываю тоненькую книжечку по языку(листов 100, не более), смотрю на основы
2.Делаю примеры из этой книжке в IDE/блокноте. Это дает мне определенную базу
3.Далее у меня есть список из примерно 20 задач(любую методичку по программированию откройте), которые я всегда делаю на новом языке. Это позволяет мне "привыкнуть" к новому коду и начать изучать стандартную библиотеку языка
4.Затем я начинаю брать низкобюджетные заказы на фрилансе по этому языку
5.После этого начинаю учить самый популярный фреймворк языка, опять же на низкобюджетных проектах.
6.Сделать с 12-15 проектов я могу уже браться за что-то более менее серьезное с почасовой оплатой на фултайме.
Вот это мой путь. По срокам - базу я себе нарабатываю за 1,5-2 месяца, на это время у Вас должна быть какая-то "подушка". 
P.S. надеюсь помог. ))

Худший ответ:
Может я немного не в тему, простите, но, как мне кажется, выбор ЯП должен быть за вами. А что конкретно учить в выбранной области подскажет поток заказов на бирже. Если немного помониторить, то станет ясно, что учить и в какую сторону смотреть. Например, выбрали PHP, зашли на биржу, крутим ленту заказов и, о боже, правда что ли статистика не врёт и 40% рынка заказов каким либо боком относятся к wordpress?! ))))
Вопрос: Проброс портов на роутере DLINK DIR-300

Лучший ответ:
Сделать DMZ на этот локальный комп?
Кстати, обновите прошивку роутера. В последней версии много изменений, там ещё интерфейс поменялся, не спутаете со старой.

Худший ответ:
а) Проверьте 93.175...:6545 извне.
Вопрос: Сравнение значений переменных?

Лучший ответ:
Неужели все это нужно для примера?
Сделайте console.log(sran, ravno);
и посмотрите может это очевидно. Либо укоротите пример, в таком очень долго разбираться.

Худший ответ:
Что-то мне подсказывает, что ravno в этом примере имеет значение undefined
Вопрос: Действия диверсанта в windows-сети?

Лучший ответ:
Во-первых, давайте не будем забывать, что в подобной ситуации может существовать достаточно большое количество сценариев. 

Во-вторых, топик стартер, не сказал о какой версии Windows идет речь. Очевидно, что разные версии ОС Windows подвержены тем или иным проблемам безопасности в силу различных обстоятельств. Кроме того, по-хорошему нужно учитывать список используемых сервисов и служб, потому как в одной компании наличие RIS, DHCP, RADIUS, AD может быть обусловлено производственной необходимостью, а в другой компании такие сервисы могут вообще не использоваться. К примеру, большинство крупных компаний используют внутренние intranet ресурсы, которые в некоторых случаях могут представлять собой web приложения функционирующих на базе ASP, MS SQL и ISS. Очевидно, что если в этом случае используется собственный код, то качество такого кода обычный администратор Windows сети проверить не сможет и пускай он будет хоть трижды MCSE с соответствующей специализацией. Здесь очень большое поле для деятельности и множество всяких но.

Теперь, что касается вот этого: «Фильтрация на уровне сетевого оборудования исключается из рассмотрения в силу академического интереса»

В этом случае со 100% вероятность возможны атаки типа отказ в обслуживание, перехват и внедрение в сессии и т.д. т.п. Например, переполнение CAM таблиц на коммутаторах, подделка IP и MAC адресов, ложные DHCP сервера со всеми вытекающими последствиями и т.д. и т.п. 

Одним словом, вариантов очень и очень много.

Худший ответ:
Если хорошо настроено — не сломают. Но если все-таки надо сломать — сломают. Верно для любой системы.
Вопрос: Чем заменить JSF(primefaces)

Лучший ответ:
Просто не используйте JSF, JSP и прочие технологии рендеринга на стороне сервера. Это бесполезная трата времени.

Сейчас нет никаких проблем с реализацией всего, что нужно, на стороне клиента средствами одного из JS-фреймворков, таких как AngularJS например (см. single page web applications). В этом случае Java-backend превращается в RESTful-сервис.

Набор доступных компонентов в JavaScript заведомо богаче, а время на разработку экономится очень существенно.

Худший ответ:
Посмотрите wicket. Для внутренних проектов (а я подозреваю, что именно на таких вы и использовали JSF) подходит очень хорошо.
Вопрос: Почему ошибка Cannot use object of type stdClass as array in?

Лучший ответ:
Потому что $t - это объект, и вместо $t['category'] нужно использовать $t->category
Это же элементарщина, да и ошибка предельно ясно говорит в чем проблема.

Худший ответ:
$items = json_decode(json_encode($items),true);
и проблема решится.
оставлю тут для будущих искателей решения такого недоразумения.
Вопрос: Почему Safari не корректно работает с flexbox?

Лучший ответ:
делаю так для поддержки старых браузеров и приколов с вебкитом и прочими:display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
justify-content: space-between;
-webkit-flex-wrap: wrap;
-moz-flex-wrap: wrap;
-ms-flex-wrap: wrap;
-o-flex-wrap: wrap;
flex-wrap: wrap;
Это всё вместоflex-wrap: wrap;
display: flex;
justify-content: space-between;

Худший ответ:
caniuse.com/#feat=flexbox уверяет, что текущая Safari 8 дружит с flexbox только через префикс -webkit-
Вопрос: Переехать в Москву и устроиться джуниором. Сколько стоит?

Лучший ответ:
История времен прошлого кризиса 2008 года.
Работал в Москве сисадмином. Был у меня помощник-студент на полставки, мне его помощи хватало. Но фирма решила - нужен помощник на полный день. Нашли, взяли. Оказалось - зто хлопец из Волгограда, взял 60 000 руб денег и поехал в Москву работать. Снял в подмосковье то ли комнату, то ли угол. Устроился на одну работу: отработал месяц - не прошел испытательный срок, получил на руки мизер. Устроился на вторую: договаривались на одни деньги, заплатили в первую зарплату гораздо меньше - сам ушел. Отработал у нас 2 недели - грянул кризис. Уволили по случаю кризиса почти всех манагеров-продавцов (глобальное сокращение было), и его тоже. Денег у него не осталось совсем. У меня 200 рублей занял, чтоб в съемное жилье доехать-вернуться на следующий день за расчетом. На следующий день получил расчет. Денег с расчета ему хватило как раз мне долг вернуть и на билет до Волгограда.Моё ИМХО - если нет подушки в виде родственников-друзей, у которых можно пожить пару месяцев - сейчас лучше в Москву не соваться.

Худший ответ:
Джуниор и стажер немного разные вещи.
Я искал работу с 8, кажется месяцами опыта, просто поехав в Москву в отпуск. Начал рассылать резюме заранее за две недели. В Москве с утра ходил на собеседования, а вечером встречался с друзьями. Через неделю вернулся домой и, спустя пару дней, по телефону мне сделала предложение компания, которая понравилась больше всего.
При таком раскладе денег нужно на месяц-два съема жилья - у меня съезжал знакомый и я стал снимать вместо него.
Стажер 1С может расчитывать на 20-30к в месяц, как мне кажется. Но не знаю насколько просто будет найти такую работу.
Вопрос: Total Commander. Как распаковать архив на сервере?

Лучший ответ:
распаковку надо запускать на сервере. 
Или файл менеджером панели управления, или через ssh зайдите на сервер и там уже распаковывайте. тотал вам в этом не поможет

Худший ответ:
Зачем закидали архив?  Распакуйте файл з ПК прямо на сервер
Вопрос: Есть ли CSS-генератор/редактор, где, нарисовав произвольную фигуру (div в html), можно увидеть её код в css?

Лучший ответ:
Вы не попутали часом CSS с SVG ? Потому, что CSS - это не про фигуры, а про стили и свойства элементов DOM :)

Худший ответ:
Вы меня извините за скепсис, но что он вам даст? Учитывая количество примитивов, которое может дать даже css3, мы имеем не так много типов фигур. Их можно через тот же LESS запрограммировать, такой вариант куда больше годится для веб, ведь чаще всего нужны точные размеры, а не на глазок
Вот пример
codepen.io/iiil/pen/AfdEs
Вопрос: Вопрос про Custom Doctrine Sluggable Transliterator в Symfony 2?

Лучший ответ:
Я делал так. gist.github.com/4244940
Таблицу транслитерации вытянул из одного плагина wordpress.

По-моему у Inori более короткий вариант получился.

Худший ответ:
А чем вариант из примера не устроил? Со sluggable не работал (кстати, на днях буду), поэтому изящных вариантов не знаю.
Вопрос: Как сделать загрузку товара в magento с помощью отдельного скрипта?

Лучший ответ:
Непосредственно в Magento Community Edition реализовано 3 сценария, где происходит добавление товаров в базу данных интернет-магазина.
1) сценарий добавления товара в интернет-магазин вручную администратором:Mage_Adminhtml_Catalog_ProductController::saveAction()
2) сценарий программного удалённого добавления товара в интернет-магазин администратором по протоколам SOAP / XML-RPC:
версия 1: Mage_Catalog_Model_Api2_Product_Rest_Admin_V1::_create()версия 2 (по стандарту WS-I): Mage_Catalog_Model_Product_Api_V2::create()
3) сценарий пакетного импорта товаров в интернет-магазин из файлов CSV / Excel:
версия 1 (по технологии Magento Dataflow): Mage_Catalog_Model_Convert_Adapter_Product::saveRow()версия 2 (появилась в ядре Magento позднее как ускоренная альтернатива Magento Dataflow, работает с БД на низком уровне, для первоначального обучения не рекомендую): Mage_ImportExport_Model_Import_Entity_Product::_saveProductEntity()
В Российской сборке Magento (платная, но исходный код полностью открыт), в дополнение к сценариям Magento Community Edition, имеется сценарий импорта товаров из учётных систем «1C: Управление торговлей» и «МойСклад», полностью подходящий под Ваше описание: товары будут приходить на сервер в zip архиве, который будет открываться и из него выбираться все нужное - данные и изображения
импорт простых товаров реализован в методе:Df_1C_Model_Cml2_Import_Processor_Product_Type_Simple::process()
импорт сложных товаров (товаров с настраиваемыми опциями, в разрезе которых ведётся отдельный складской учёт):Df_1C_Model_Cml2_Import_Processor_Product_Type_Configurable::process()

Худший ответ:
Посмотрите вот это: Magmi – лучший способ импортировать продукты в Magento
P.S. По поводу "Российской сборки Magento" почитайте здесь.
Вопрос: Можно ли на ModX Revo создать аналогию сайту Q&A?

Лучший ответ:
можно, делайте.

Худший ответ:
Модуль Tickets  в помощь
Вопрос: Как reduсers обрабатывает данные в React Redux?

Лучший ответ:
Редуцер должен возвращать объекты/хэши, а не так как у вас массивы.
Весь этот синтаксис { ...state, loading: true} означает: Возьми пустой объект, скопируй туда все содержимое state, а потом переопредели следующие ключи (loading и т.д.)export default function company(state = defaultState, action) {
  switch (action.type) {

    case LOAD_REQUESTED:
      return {
        ...state,
        loading: true
      };

    case LOAD_OK:
      return {
        ...state,
        loading: false,
        counter: action.counter,
        app: action.app,
        errors: null
      };

    default:
      return state;
  }
}

Худший ответ:
vsuhachev Вы не поможете разобрать этот код?отсюдаcase COMPLETE_TODO:
  return Object.assign({}, state, {
    todos: [
      ...state.todos.slice(0, action.index),
      Object.assign({}, state.todos[action.index], {
        completed: true
      }),
      ...state.todos.slice(action.index + 1)
    ]
  });
Почему там не используется постоянно
{ ...state, ...newState }?
У Object.assign({}, state, ...newState) есть какие-то особенности? Вроде аналогичны.
Вопрос: Почему не парситься ответ JSON?

Лучший ответ:
нужно не выводить каждый ряд, а собирать их в массив и вызывать json_encode один раз в конце скрипта.if ( $result->num_rows > 0 )
 {  
   while($row = $result->fetch_assoc()) 
   {
    $myArray[] = $row;
   }
   echo json_encode($myArray);
 }

Худший ответ:
Заключить в квадратные скобки
Вопрос: Почему python серипт упакованный в .exe не запускается на windows7 без sp1?

Лучший ответ:
1) берем Dependency Walker, смотрим зависимости экзешника;
2) обращаем внимание на зависимости, которые резолвятся из системных директорий. Среди них нужно выбрать те, которые не являются обязательной частью системы (сложно перечислить конкретные, скриншот окна DepWalk не помешает);
3) могу на 90% сказать, что это будет Студийный рантайм (msvcr*.dll/msvcp*.dll).
4) удовлетворяем эти несистемные зависимости. Если райнтам - то желательно его нормально поставить (из redist-пакета), если не вариант - то можно просто положить dll рядом с exe.

Худший ответ:
Видимо питону нужны библиотеки, которые появились только в SP1, и упаковка в EXE не убирает эту зависимость.
Вопрос: Странные временные тормоза MySQL. Какая причина?

Лучший ответ:
В процессе решения мигрировали на 5.6, лучше точно не стало
возможно производительность даже ухудшилась (ну или так совпало)
потом вышли на запрос, который обнулял 250 тыс строк (считай всю таблицу). 
Сам запрос простейший: update a set a.x = 0;
Он выполнялся 20 секунд!. И в процессе выполнения в лог начинали сыпаться slow queries.
В реальности данные менялись у 1 тысячи строк, остальное оставалось нетронутым. Добавили условие по индексированному полю,  чтобы менять только нужные и он стал менее секунды выполняться.
Остается вопрос, почему это все раньше работало....
подозреваю появление зависимостей которым нужна таблица, а она в этот момент обновляется. Пока они ждут, мгновенно вырастает очередь коннектов, они упираются в лимит и все падает
----
Все оказалось совсем не так. База не тормозила, тормозили веб-сервера
Цепочка примерно следующая
В час пик на веб серверах начинает увеличиваться время ответа. С 50-100ms до 1000-1500ms.
Каждый запрос висит дольше обычного и дольше занимает коннект к MySQL. В итоге все возможные коннекты выбираются и все упирается в max_mysql_connection
Веб-сервера хоть и работают медленнее, но все равно потихоньку шевелятся. У них количество допустимых процессов выше чем максимум коннектов к БД. В итоге мы думали что тормозит база. Там еще было некоторое количество slow запросов, но они видимо всегда были, просто пока не было ошибок мы на них внимания не обращали.
Проблему решаем следующим образом
1. Несколько перебалансировали раздачу нагрузки по веб-серверам, чтобы процессор равномернее использовался
2. Заказли еще один веб-сервер
3. Оптимизируем "тяжелые" страницы
P.S. Тем не менее TRIM на серверах бд все равно нужен и мы будем настоятельно просить инженеров хостера включить его

Худший ответ:
кореллируйте скачки с нагрузкой на память и скорее всего винт
Вопрос: Как правильно проимпортировать модули?

Лучший ответ:
Если я правильно вас понял, то да, вы всё сделали правильно :)
А как вы себе представляете "весь импорт в файле main.py"? Если вы просто сделаете import math в main, то math не будет "магически" доступен в mod1 и mod2. Если вы собирались сделать import math в main а потом from main import math в mod1 и mod2, то так делать, конечно же, не нужно.

Худший ответ:
Все правильно
Вопрос: Как создать связь поля в 1 таблице с несколькими записями в другой?

Лучший ответ:
Стандартная связь многие-ко-многим - через дополнительную таблицу.

Худший ответ:
1 полу group сделать varchar, и хранить список idшников групп через запятую, к примеру, но тогда отсортировать юзеров по группам не представляется возможным. Да и деть придется два запроса к базе что бы получить юзера и его группы.
Как потом будете отбирать группы? С помощью LIKE? 
А удалять группы у пользователей? Получать, парсить, удалять и записывать?2 создавать третью таблицу, для коннекта юзеров с группами? Это лишняя таблица и путаница, сложность запросов. Хотя склоняюсь к этому варианту,
Дополнительная таблица в вашем случае лучший вариант.