【问题标题】:mongodb design polymorphic vs embeddedmongodb设计多态与嵌入式
【发布时间】:2020-12-07 11:26:05
【问题描述】:

我正在考虑创建仅包含两种用户的用户集合;老师和学生。

Users {
    name: String,
    dob: Date,
    subjectsTaught: Array,
    department: String,
    grades: Array,
    classroom: String,
}

这是多态的标准方式,对吧?另一位开发人员建议这样做。

Users {
    name: String,
    dob: Date,
    studentInfo: {
        grades: Array,
        classroom: String,
    },
    teacherInfo: {
        subjectsTaught: Array,
        department: String,
    },
}

我无法解释为什么我的方法是正确的方法。这两种模式的优缺点是什么?

【问题讨论】:

    标签: mongodb database-design nosql polymorphism


    【解决方案1】:

    第二个接缝对我来说更好,因为它专门处理实体,并且只有与两个孩子有关的数据由 Users 实体处理。 CDM 会是这样的

    • USER(id, name, dob)
    • STUDENT(id_user, grades, classroom) 其中 id_user 是外键引用 USER.id
    • TEACHER(id_user, subjectTaught, department 其中 id_user 是外键引用 USER.id

    那么这个对象就和那些实体完全一样了。

    当然subjectsTaughtgrades 可以存储到单独的表中,因为它们是数组数据。但由于这不是你的问题,也不是概念层面的,所以我不会在这里放弃。

    【讨论】:

      猜你喜欢
      • 2011-10-13
      • 2011-04-18
      • 2013-02-09
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多