0

我正在设计一个 grails 应用程序,许多多对多的关系让我很难过。这是我目前所拥有的......

领域类

  • 学生们
  • 测试
  • 问题

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

 TestConfig 

这个类可以有many questionsmany tests

但是当学生参加测试和尝试提问时,我仍然对如何设计我的数据模型感到困惑。一个可能会被调用的课程,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
}

- - - 编辑 - - - - -

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

4

1 回答 1

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
}
于 2012-08-26T20:00:18.303 回答