нужно предложение: структура базы данных mysql

0

другой вопрос структурирования базы данных, надеюсь, вы, ребята, не возражаете: D

У меня есть эта видео-опрос на моем веб-сайте с таким видом потока:

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

до сих пор я разработал два проекта базы данных для этого

первый из них:

table: video 
fields: id, filename, type, size, created

table: question 
fields: id, question, right_answer, wrong_answer, video_id

второй, я разделяю вопрос и ответ на разные таблицы

table: video 
fields: id, filename, type, size, created

table: question 
fields: id, video_id, question

table: answer
fields: id, answer, video_id, status

поле статуса в таблице ответов должно указывать, является ли ответ правильным или неправильным, возможно, используя tinyint на значение 0 и 1

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

Привет

Update:

благодарим всех за то, что вы указали лучший подход для моего дизайна базы данных, так как все говорят, что я должен использовать логический или бит как тип поля, и я всегда использую tinyint для таких полей: p, поэтому я просматриваю для решение о том, какой тип я должен использовать в mysql для представления boolean, и я наткнулся на этот Какой тип данных MySQL использовать для хранения логических значений с/на PHP? и в соответствии с ответ на этот вопрос, я должен использовать tinyint (1), поэтому я уверен, что я буду продолжать использовать tinyint: p

еще раз спасибо всем

Теги:
database
normalization

3 ответа

2
Лучший ответ

Прощая ASCII, я рекомендую следующее:

VIDEO                Question             Answer
|- id       1--.     |- id       1--.     |- id
|- filename     '--* |- video_id     '--* |- question_id
|- type              '- question          |- answer
|- size                                   '- correct (bit, not tinyint)
'- Created

Это дает вам возможность добавлять несколько вопросов на видео и несколько ответов на каждый вопрос. Кроме того, я предлагаю использовать бит (а не tinyint), чтобы отметить "правильный" ответ. Я также попытался показать, как ключи будут выравниваться в этом сценарии.

  • 0
    если я думаю о гибкости для дальнейшего развития модуля, это имеет смысл, спасибо Брэду
1

Интуитивно, я бы пошел на первое решение, так как вам, скорее всего, потребуется получить оба вопроса одновременно.

Кстати, если вы выберете второй вариант, я бы посоветовал вам использовать логическое значение для поля "status", а не tinyint.

0

Если вы планируете добавить больше ответов, тогда сделайте второй способ, иначе используйте первый.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню