# 按类别隔离

**URL:** <https://meta.discourse.org/t/using-discourse-for-courses-in-a-university-program/387452>\
**Category:** Community Building\
**Tags:** groups, spaces\
**Created:** [2025年十一月3日 13:30 UTC](https://meta.discourse.org/t/using-discourse-for-courses-in-a-university-program/387452 "2025-11-03T13:30:02Z")\
**Posts on this page:** 1\
**Showing post:** 15

<div class="post-metadata">

**Author:** ![mcwumbly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcwumbly/32/103861_2.png) [@mcwumbly](https://meta.discourse.org/u/mcwumbly)\
**Post date:** [2025年十一月15日 14:52 UTC](https://meta.discourse.org/t/using-discourse-for-courses-in-a-university-program/387452/15 "2025-11-15T14:52:48Z")

</div>

作为跟进，我想说明一下如何通过 Discourse 的开箱即用功能来最好地满足您的需求。这可能不完全符合您的设想，但我认为它值得作为讨论的起点。

首先，我做了一些假设，这些假设可能有效，也可能无效。请告诉我我哪里说错了：

1. 将会有很多课程（几十个，可能上百个）
2. 课程的设置将定期进行，分批进行，在每个学期开始时（每年 2-4 次）
3. 课程将有生命周期
4. 管理课程的人需要能够自己进行一些设置
5. 管理课程的人在管理 Discourse 网站方面经验有限或没有经验。
6. 管理课程的人实际上只需要看到他们自己的课程。他们可能偶尔想看看别人的课程作为例子，但不需要持续参与其中。
7. ^ 同上，对于选修课程的人
8. 有一个非常小的团队负责管理整个系统
9. 课程实际上不需要子类别；使用标签来组织课程内的内容就足够了

鉴于这些假设接近实际情况，以下是我的建议，首先是高层次的：

1. 创建少量顶级类别：一个用于“当前课程”，一个用于“过去课程”，一个用于“即将到来的课程”，以及一个或多个用于关于整个系统本身的更一般的内容（例如，如何使用网站）。
2. 将主页样式设置为“带类别的框”，以便突出显示它们。
3. 为每个课程使用子类别。
4. 在“即将到来的课程”中创建它们。
5. 在学期开始时将它们移至“当前课程”。
6. 课程结束后，将其从“当前课程”移至“过去课程”。
7. 使用群组控制对课程的访问（下文有更多详细信息）。

访问控制：

1. 对于每个课程，创建一个以下群组集，例如：foo\_interested、foo\_enrolled、foo\_admin。
2. 创建两个额外的群组：“browse\_courses”和“browse\_past\_courses”。
3. 将“即将到来的课程”和“当前课程”中的类别设置为只能由特定课程的群组成员以及“browse\_courses”群组的成员访问。
4. 将“过去课程”中的类别设置为只能由特定课程的群组成员以及“browse\_past\_courses”群组的成员访问。

群组和课程的用户体验

1. 在“即将到来的课程”的顶级类别中置顶一个主题，解释如何浏览课程，并提供一个简单的入口供人们加入“browse\_courses”群组。
2. ^ 同上，用于“当前课程”。
3. ^ 同上，用于“过去课程”。

对于个别课程，在类别中置顶一个主题，解释如何加入课程：

1. 加入“foo\_interested”和/或“foo\_enrolled”群组。
2. 将课程添加到您的侧边栏。

管理工作最初会有些繁琐，因为对于每个新课程，拥有适当权限的人都需要：

1. 创建类别。
2. 创建群组。
3. 创建置顶主题。
4. 将人员添加到 \_admins 群组。
5. 向他们提供管理自己课程所需的文档。

其中一些可以通过轻量级工具进行自动化。根据主要管理团队是谁，可能需要从一些带外工具开始，这些工具直接调用 API。或者，您可能需要一个更基于 UI 的东西，它作为主题组件或插件内置到 Discourse 中。但我建议从精简开始，首先专注于定义一个可行的流程，然后围绕该流程设计工具。

类别扩展可能是一个令人担忧的问题。当类别数量过多（数百或数千）时，Discourse 在性能和用户体验方面确实存在一些粗糙之处。可以访问更多类别的用户将感受到这种影响，而访问权限有限的用户则不会。这也是限制对类别访问的部分原因，如我所述。

非常期待听到您对以上内容的任何反馈或疑问。

---

_[View the full topic](https://meta.discourse.org/t/using-discourse-for-courses-in-a-university-program/387452)._
