I have a course planning project where a curriculum has many subjects (called a curriculum framework), and subjects can belong to many curriculums. This works perfectly for graduate courses.
But in undergraduate courses, groups use only some of the curriculum framework items, not all.
The solutions I found:
(the one I found most correct) I created a table to define which curriculum framework items a group can view. But here we have an NxN relationship through another NxN relationship... I don't know if that's a good design.
I could add the group_id column inside the curriculum_items table, but I'll have extra work whenever I have to sync this table and/or view your items (so they don't show up as duplicates). Also, this would cause me a big performance loss in the base, because this table has thousands of items.
This is a EER Diagram from first solution:
Is there another way to resolve this little confusion or is the first solution acceptable?