Question library of university platforms-no longer "dead", no dynamic Questions Library
The university platform includes the examination system, permission system, basic system, evaluation system, and new student admission system. You are lucky to take part in one of the examination systems. In the examination system, there is a problem about how the question library table is stored in the database.
The question bank looks at two simple words, but it contains many questions. The question bank contains many questions. Each question type has many questions. For Langfang Normal University, until now, there are 28 experienced question types, and many new question types may be added each year. If you just list question types, You can't list them all, i'm not sure about the number of questions in each question type. It may be more this year or less next year, maybe less this year or more next year...
So how should we solve this problem? There are three solutions:
1. Dynamic table creation (question type + course = One Question Bank)
Dynamic table creation: A Question type and a course determine a question table. This table is dynamically created when Chapter questions are configured for the course.
SQL statements are used, which does not conform to the object-oriented idea.
The number of tables accessed during Question extraction is large.
Second: 28 types of question bank tables + dynamic table creation (Dynamic table addition when new question types are added)
List the existing 28 question types. These 28 Question Types comply with the object-oriented thinking. For newly added Question Types, use SQL statements to create and operate. When selecting a question, extract from the question library table corresponding to the corresponding question type.
There are too many databases and tables in the database, and SQL statements are still required, which does not conform to the object-oriented idea.
For dynamically created tables, the number of tables to be accessed during Question extraction is large.
Third: Place all questions in one table
Easy to add new Question Types
You only need to query one table for question extraction.
A large amount of data in the table, frequent access to data during the test, easy to paralyze
Redundant data with redundant Fields
We finally chose the third solution for the following reasons:
The main reason is that new questions are more flexible and easy to answer. Our Solution to the disadvantages of new questions is to draw questions in advance, place the questions of this course in a temporary table before the exam, and access this temporary table during the question extraction process. In addition, you can take questions several minutes before the exam, the question is retrieved and stored into the database according to certain rules.
How can this scheme be convenient to add new questions? How to Design the corresponding table?
The analysis shows that the question bank composed of a complex question type is composed of the most basic attributes (such as courses and question types) + Option + null number + correct answer + question bank sub-table and other basic components. Therefore, the table we designed is like this.
The question component is as follows: Save the component as a question type to the question type and question Type Details respectively.
The question type table and question Type Details table are as follows:
The question bank table is as follows:
The page for adding question types is as follows: combine them into new questions and save them to the question type and question Type Details table.
The road is tortuous, And the implementation is tangled. As for the effect, I still don't know. It is being implemented .......