Можно сделать два в одном. И личные и коллективные), написать функцию для включения категории как "для личных записей" и в ней разрешить создавать пользователям разделы, если же на категории не стоит разрешение и они являются будут коллективными то пользователи соответственно категории создать не смогут и записи будут являются публичными.
Как то так)
Зы: если не понятно то незнаю как уже проще написать)))