我正在设计一个grails应用程序,许多多对多关系让我难过。 这就是我到目前为止......
域类
这里的测试和问题将有m2m关系。可能由映射类表示,如果我错了,请纠正我。
TestConfig
此课程可以有many questions
和many 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
答案 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
}