другой вопрос структурирования базы данных, надеюсь, вы, ребята, не возражаете: D
У меня есть эта видео-опрос на моем веб-сайте с таким видом потока:
до сих пор я разработал два проекта базы данных для этого
первый из них:
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
еще раз спасибо всем
Прощая ASCII, я рекомендую следующее:
VIDEO Question Answer
|- id 1--. |- id 1--. |- id
|- filename '--* |- video_id '--* |- question_id
|- type '- question |- answer
|- size '- correct (bit, not tinyint)
'- Created
Это дает вам возможность добавлять несколько вопросов на видео и несколько ответов на каждый вопрос. Кроме того, я предлагаю использовать бит (а не tinyint), чтобы отметить "правильный" ответ. Я также попытался показать, как ключи будут выравниваться в этом сценарии.
Интуитивно, я бы пошел на первое решение, так как вам, скорее всего, потребуется получить оба вопроса одновременно.
Кстати, если вы выберете второй вариант, я бы посоветовал вам использовать логическое значение для поля "status", а не tinyint.
Если вы планируете добавить больше ответов, тогда сделайте второй способ, иначе используйте первый.