1) Is it possible for an achievement to be associated with more than one user (or user_group)?
If answer is more than one user, then you need a user_achievement table. Otherwise, you could just put the user id into the achievement table itself.
2) Is the achievement associated with a user_group or just a user?
If the answer user_group, then store the user-group id in either a user_group_achievement table or directly in the achivement table (see first question). Otherwise, store the user id in user_achievement table or user_group_achivement table (again, first question).
users
-------
user_id
user_name
groups
-------
group_id
group_name
user_groups
-----------
user_id
group_id
achievments
------------
achievement_id
achievement_name
user_achievements
-----------------
user_id
achievment_id
group_achievements
-----------------
group_id
achievement_id
So you have many-many relations between user-groups, users-achievements, and groups-achievements.
you can do joins to find:
all users in group
all groups for user
all achievements for user
all users for achievement
all achievements for group
all groups for achievement
it would take an addition join to find all users associated with a group achievement.