Возможно, PK группы пользователей неверен, поскольку для уникальной идентификации пользователя требуется комбинация UserName и StartDate. Таким образом, если «Джон» (первый) присоединился к 2011-09-01, а «Джон» (второй) присоединился к 2011-09-10, то ПК пользователей вашей группы не позволяет им присоединиться к одной группе. PK группы пользователей должен включать в себя как имя пользователя, так и дату начала, поскольку именно эта комбинация уникально идентифицирует пользователя.
Вот почему люди используют столбцы «ID»; если бы у вас был столбец Users.ID, то вы использовали бы этот простой ключ в FK в группах Users. Составные первичные ключи, которые сами используются в качестве внешних ключей в других таблицах, как правило, являются проблематичными (для таких случаев, как этот), и суррогат, такой как столбец идентификатора, делает проект БД более простым.
Вероятно, у вас также должна быть таблица Group, а Group Users.Group Name должна быть FK для этой таблицы. Немного удивительно, что в таблице Group Users и в таблице Users нет «даты отписки». Или вы можете предпочесть флаг «в настоящее время подписан», но в целом дата также полезна.