针对多对多关系的grails域类设计

针对多对多关系的grails域类设计,grails,groovy,grails-domain-class,Grails,Groovy,Grails Domain Class,我正在设计一个grails应用程序,许多对许多的关系让我感到困惑。 这就是我目前所拥有的 域类 学生 测验 问题 这里的测试和问题将具有m2m关系。它可能由映射类表示,如果我错了,请纠正我 TestConfig 这门课可以有许多问题和许多测试 但当学生参加测试并试图提问时,我仍然对如何设计我的数据模型感到困惑。 一个可能被称为的类尝试,它将由学生给出答案(可能是错误的),它应该属于学生还是测试,或者两者都属于 我想设计一个“尝试”类,这样当我看到它的一个实例时,我就可以知道它属于什么测

我正在设计一个grails应用程序,许多对许多的关系让我感到困惑。 这就是我目前所拥有的

域类

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

 TestConfig 
这门课可以有
许多问题
许多测试

但当学生参加测试并试图提问时,我仍然对如何设计我的数据模型感到困惑。 一个可能被称为
的类尝试
,它将由学生给出答案(可能是错误的),它应该属于学生还是测试,或者两者都属于

我想设计一个“尝试”类,这样当我看到它的一个实例时,我就可以知道它属于什么测试,以及哪个学生参加了测试

我目前的课程如下

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
}
----编辑----


我想我在这里发现了一些有用的东西

据我所知,一个学生有很多测试,测试有很多问题

这是文件

试着阅读。良好的开端是:
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
}