grails域类设计用于多对多关系

时间:2012-08-26 18:10:06

标签: grails groovy grails-domain-class

我正在设计一个grails应用程序,许多多对多关系让我难过。 这就是我到目前为止......

域类

  • 学生
  • 测试
  • 问题

这里的测试和问题将有m2m关系。可能由映射类表示,如果我错了,请纠正我。

 TestConfig 

此课程可以有many questionsmany tests

但是当我对学生进行测试和尝试提问时如何设计我的数据模型时,我仍然感到困惑。 一个可以被称为Attempts的课程,如果学生有学生或考试,或者两者都有答案(可能是错误的)?

我想设计一个“Attempts”类,这样当我查看它的一个实例时,我就可以知道它属于哪个测试,以及哪个学生接受它。

我目前的课程如下:

class Questions {
    String question
    String questionType
    int points
    String tags
    String option_1
    String option_2
    String option_3
    String option_4
    boolean isOption_1_Correct
    boolean isOption_2_Correct
    boolean isOption_4_Correct
    boolean isOption_3_Correct
}

class Students {
    String firstName
    String lastName
    String email
    String password
}

class Tests {
    String name
    String tags
    String description
    int duration
    String instruction
}

------ EDIT ---------

我想我在这里发现了一些有用的东西http://www.databaseanswers.org/data_models/online_exams/index.htm

1 个答案:

答案 0 :(得分:0)

根据我的理解,学生有很多考试和考试有很多问题

以下是文档

http://grails.org/doc/2.1.0/guide/GORM.html#manyToMany

class Student {
    // a list named tests which contains Test object
    static hasMany = [tests:Test]
    String name
}

class Test {
    static belongsTo = Student

    // a list named students which contains Student objects
    // a list named questions which contains Quention objects
    static hasMany = [students:Student,questions:Question]
    String title
}

class Question {
    static belongsTo = Test
    static hasMany = [tests: Tests]
    String data
}