Взаимосвязь таблиц структуры схемы БД в режиме онлайн-экзамена с использованием laravel - PullRequest
0 голосов
/ 12 марта 2020

Я работаю с онлайн-проектом по проверке викторины в Laravel. Я планировал создать структуру БД с почти всеми возможностями, но искал более оптимизированный способ.

Требование: необходимо добавить вопрос. Перед добавлением вопроса мне нужно следующее, для какого стандарта, для какого класса, для какого предмета, для какой главы, для какого топи c этот вопрос принадлежит.

Итак, это мой план:

Добавить класс -> здесь есть форма и таблица для добавления классов (1-й, 2-й, 3-й и т. Д.)

Добавить тему -> здесь есть форма и таблица ( Maths engli sh, химия, engli sh)

Add Chapters-> имеет форму и таблицу для конкретного c предмета, к которому принадлежат эти главы (один ко многим отношениям один предмет много глав)

добавить темы -> здесь есть форма и таблица, для указания c главы, к которой принадлежат эти темы (отношение один ко многим. Одна глава может иметь много тем)

Теперь мне нужно добавить вопрос. У меня есть форма вопроса, где форма имеет элементы управления, такие как вопрос о том, какой класс, какой предмет, какую главу, какой топи c, какой уровень.

мой EduationStandardtable с полями

id  standard_name
1   CBSE
2   ICSE
3   Matriculation
4   State board

my classDetailstable с полями

id  class_name
1   5th std
2   6th std
3   7th std

my SubjectDetails table с полями

id  sub_name
1   english
2   maths
3   physics

my ChapterDetails table с полями

id  subject_id      ChapterName
1   1               Matrices
2   1               Integration
3   1               Differentiation
4   3               Electrostatics
5   3               Tranformation
6   3               Electricity

my TopicDetails table с полями

id  chapter_id          Topic_id
1   1              Inverse of a Non-Singular
2   1             Elementary Transformations of a Matrix
3   1           Solving System of Linear Equations
4   4           Role of electrostatic
5   4           Electric flux
6   4           Polaraisation

Итак, я планировал, чтобы моя таблица вопросов была такой,

id
education_standard_id(fk)
class_id   (fk)
subject_id (fk)
chapter_id (fk)
topic_id (fk)
level (easy,medium,hard)
question_number
question_description
question_image(optional)
optionA:
optionA_image:(optional)
optionB:
optionB_image:(optional)
optionC:
optionC_image:(optional)
optionD:
optionD_image:(optional)
correctanswer
explanation
explanation_image (optional)
explanation_pdf (optional)
explanation-video(optional)

Достаточно ли этого? Как еще можно оптимизировать это?

Здесь класс и предмет связаны между собой, означает, что в одном классе может быть много предметов, а в одном предмете может быть много классов.

у предмета может быть много глав, так один ко многим. В одной главе может быть много тем, поэтому от одной ко многим.

всего 5 форм adding-class, adding-subject, adding-chapter, adding-topic, adding-question

всего пять таблиц class-table, subject-table, chapter -table, topic-table, question-table

Один из моих друзей на другом форуме предложено так

classes ( id, name ) //slug or others if you want
subjects (id, name ) // slug or others if you want
chapters(id, name, subject_id)  // this belongs to a subject so it's a "child"
topics (id, name, chapter_id) // topic is child of chapter
class_topic (id, class_id, topic_id) // this is the pivot table because each class studies a topic...

Example
$class_5 = ClassObject::find(5);
$topics = $class_5->topics()->get();

// iterate and display topic->name

Мое замешательство - формы. Я использую 5 форм для их добавления. Это правильно? Как еще я могу уменьшить формы. Я думаю, что все таблицы необходимы. Но правы ли они?

...