2016-05-20 3 views
3

Я пытаюсь расшифровать диаграмму базы данных ER, которую помог мне мой учитель. Я в основном пытаюсь выяснить, как построить необходимые таблицы и правильно их комбинировать.Расшифровка базы данных ER Диаграмма для вопросника

Диаграмма ER, о которой идет речь, предназначена для онлайн-анкеты, где каждый вопрос основан на ответе, указанном для предыдущего, что в конечном итоге приводит к решению/окончанию.

Каждый вопрос может иметь несколько ответов, и один и тот же вопрос может иметь несколько разных ответов в зависимости от предыдущих ответов.

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

Диаграмма ER выглядит следующим образом:

enter image description here

То, что я не понимаю:

Таблица решение/вопрос будет держать оба вопроса и решения, которые могут иметь разные объекты, но я не понимаете, как это делается? И что такое D?

The приводит к представляет собой таблицу перехода, потому что многие ко многим связи между Ответом и Вопросом/решением, но почему? Не связаны ли они в таблице Комбинация таблица? - Не содержит ли эта таблица всю информацию, необходимую для того, чтобы узнать, какие ответы связаны с каким вопросом и какой вопрос будет дальше, если будет выбран конкретный ответ?

Мне очень сложно выяснить, как построить эту базу данных, чтобы она работала по желанию.

ответ

5

Ваша диаграмма не является правильной диаграммой ER. В частности, овалы с «Конкретными узлами решения здесь» и «Конкретные объекты вопроса здесь», как представляется, не указывают атрибуты Solution и Question соответственно. Это означает, что Question, Solution и Question/Solution не имеют никаких атрибутов. Кроме того, объект Combination имеет Answer ID и Question/Solution ID как атрибуты, а не связанные с соответствующими объектами.

Давайте быстро рассмотрим элементы диаграммы ER.

  • Прямоугольники указывают объекты, овалы указывают атрибуты.
  • Подчеркнутая овальная метка указывает, что атрибут является частью первичного ключа, который идентифицирует объект.
  • Алмазы указывают на отношения.
  • Отношения определяются ключевыми атрибутами объектов, к которым они относятся.
  • Отношения могут иметь атрибуты.
  • Круг, содержащий d или o, указывает на непересекающееся или перекрывающееся отношение подтипа.

Исходя из ваших требований, я пришел со следующими функциональными и многозначных зависимостей:

  • QuestionID -> QuestionText
  • AnswerID -> AnswerText
  • AnswerID -> QuestionID (Возможные ответы)
  • DecisionID -> QuestionID
  • DecisionID - >> AnswerID (Доступные ответы)
  • DecisionID, AnswerID -> NextDecisionID

Исходя из этого, я предлагаю следующую ER диаграмму:

Decision tree ER diagram

Перевод на модели табличной (I Денормализованные отношения с тем же определителем, поэтому нет таблицы для PossibleAnswers и DecisionQuestion):

Decision tree database diagram

Используя это, вы можете описать любое количество вопросов, с набором доступных ответов для каждого решения, относящегося к следующему. Решения явно не моделируются, а доступный ответчик без указания NextDecisionID указывает на решение.

+0

Это безумно блестяще, и я искренне благодарю вас за работу и подумал, что вы вложили в это. Большое спасибо! У меня есть 2 вопроса, как вы точно различаете доступные ответы и возможные ответы? И это не означает, что вопрос может быть использован только один раз? И если да, можно ли легко изменить это, так что вопросы могут быть использованы более одного раза? Я не указывал, что их можно использовать более одного раза, я просто убедился. – user2304993

+1

Все возможные ответы на вопрос представлены в таблице «Ответы», а таблица AvailableAnswers содержит допустимые ответы в каждой точке принятия решения. Вы можете повторно использовать вопросы столько раз, сколько пожелаете в разных точках решения. Вы даже можете создавать круговые пути вопросов. – reaanb

+0

Я снова использую ваше решение, и я все еще изумлен. Однако у меня есть еще один вопрос; в вашем табличном представлении базы данных у вас есть QuestionID в качестве внешнего ключа в таблице «Ответы». Разве это не ограничит ответы на один вопрос? И для этого нормализовать таблицу, должен ли я получить тот же ответ в двух разных вопросах? Я мог бы легко что-то понять, и я был бы очень благодарен, если бы вы объяснили. Спасибо вам заранее. – user2304993

 Смежные вопросы

  • Нет связанных вопросов^_^