нужно предложение: структура базы данных mysql - PullRequest
0 голосов
/ 23 ноября 2010

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

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

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

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

1-й:

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

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

2-й, я разделяю вопрос и ответ на каждую таблицу

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

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

Привет

Обновление:

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

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

Ответы [ 3 ]

2 голосов
/ 23 ноября 2010

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

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

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

1 голос
/ 23 ноября 2010

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

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

0 голосов
/ 23 ноября 2010

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

...