Тут два совершенно отдельных вопроса:
- как строить категории курсов: факультет- кафедра или факультет-специальность?
- где хранить глобальные группы студентов: на уровне факультета или на уровне системы?
1. Выше на примере курса физики я объяснил, что вариант факультет-кафедра позволяет избежать дублирования курсов. Кроме, того он упрощает администрирование. На каждой кафедре назначается менеджер, который создает курсы в категории своей кафедры и назначает на них преподавателей. Заведующий кафедрой может просматривать и контролировать все курсы своей кафедры. Не представляю, как это организовать, если категории привязаны к специальностям и распорошены по всему сайту.
Советую создать новые категории курсов (на основе кафедр) и переместить все курсы из старых категорий в новые: выделяете курсы галочками и указываете куда их переместить.
2. Если хранить глобальные группы студентов на уровне факультета, то один факультет не сможет вносить изменения в списки студентов другого факультета и это лучше, чем хранить всех на уровне системы, где разделение прав и ответственности отсутствует. Можно дать менеджеру одного факультета право записывать на свои курсы студентов другого факультета, но не править их списки.
Т.е. мои предпочтения выделены выше жирным шрифтом. Преимущество такого варианта не только в отсутствии дублирования курсов, но и в том, что так более четко разделяются права и ответственность по управлению сайтом. Если сделать другой выбор то всё на сайте придется делать или одному администратору или нескольким, где не будет понятно, кто за что отвечает.