Mongo Db 唯一约束问题

Mongo Db Unique Constraint issue

为学校开发 ERP 系统。所以我有 SCHOOL Schema,在其中我引用了 COURSE Schema。我想做的是在 COURSE 模式中有一些字段是独一无二的,比如特定学校的课程名称。但是,如果我在模式本身中将字段标记为唯一,则会导致问题。

一所学校可以开设多门课程,但课程名称对于该学校来说应该是唯一的。但是两个不同的学校可以有同名的课程。例如:- 学校 A 有 btech,所以学校 A 不能有同名的其他课程文件,但学校 B 可以有名为 btech 的课程。

如果我使 course_name 字段在模式本身中是唯一的,我就无法添加 course_name,它已经在其他一些学校中添加了。

我可以通过获取数据库然后逐个检查 course_name 来实现这一点。但我认为这不是理想的解决方案。

请让我知道一些更好的解决方案

我使用 MONGO 数据库。

//SCHOOL SCHEMA
const SchoolSchema = 
mongoose.Schema({
 course: [{ type:
 mongoose.Schema.Types.ObjectId,
    ref: 'course'
 }]
})

//Course Schema
const CourseSchema = 
 mongoose.Schema({course_name: {
    type: String,
}

为了让数据库对 school + course_name 组合强制执行唯一性,两个字段都需要在同一个集合中。

最简单的方法是在课程架构中包含学校名称或 _id。