Would you get a clearer model by simply making all group relations go through the same mapping table, and marking them either as hierarchical (parent-child) or grouping, rather than having `parent_group_id` as one type of field, and linked groups as a separate field?