Mysql Database design - контрольный список / приложение для викторины - PullRequest
0 голосов
/ 22 октября 2010

В настоящее время я «изучаю» codeigniter, php и mySql одновременно, так как я пытаюсь создать веб-сайт типа «контрольный список», где посетители регистрируются, создают проект и задают список вопросов, где они должнывведите определенные поля

Я немного застрял в моем дизайне БД mySQL ... (на самом деле полностью застрял)

то, к чему это сводится ...

1 проект может иметь один из 3 типов."тип a / b / c"

тип a имеет 20 вопросов

тип b = тип a + 15 вопросов

Тип c = тип b + 15 вопросов ...

Так что, в принципе, я хотел бы с легкостью сказать, Вопрос А Тип А И /ИЛИ Тип B , но , а не C .

Теперь я не знаю, правильно ли я делаю, но я в основном делаю две таблицы изатем установить отношение между ними «многие ко многим» (я думаю?) n: m в MySQL Workbench

ProjectType
id
ProjectTypeName

Questions
ID
Title etc...

ProjectType_has_Questions
ProjectType_id
Questions_id

Кроме того, каждый вопрос «CAN, not must»есть 3 результата (текущие факты) и 3 исправления (улучшение результатов).

Я не знаю, имеет ли это какое-то значение для кого-то здесь, конечно, черт возьми, меня сбивает с толку: - /

есть мысли?

ps: я пытался прикрепить изображение, но, видя, что я впервые пользуюсь сайтом, это было запрещено.

1 Ответ

0 голосов
/ 22 октября 2010

Я отвечу на то, что я понимаю здесь. Было еще несколько вопросов, которые я прокомментировал в вашем вопросе.

Если типы вашего проекта будут всегда агрегироваться, то есть тип C всегда является надмножеством типа B, который всегда является надмножеством типа A, тогда для вопросов вы можете просто указать самый большой проект, соответствующий этому конкретному вопросу. будет включен в. Скажем, если вопрос появится в типах A и B, тогда обозначьте вопрос как тип B. Если он появится во всех трех типах, обозначьте его как тип C.

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

...