2015-04-26 2 views
1

Мне нужна помощь в структуре базы данных. Я пытаюсь это объяснить.Структура базы данных для учебного веб-сайта

  • каждый пользователь может создать учебник
  • каждый учебник есть шаги (шаг 1, шаг 2, ...)

Теперь я создал базу данных с именем Учебник-базы данных, внутри БД находится таблица с именем Учебное пособие. Таблица Учебник, имеют некоторые атрибуты

  • tutorial_id = идентификатор каждого учебника
  • tutorial_title = название каждого урока
  • tutorial_iamge = Вы можете добавить изображение, в начале каждого урока
  • tutorial_description = вы можете объяснить обучающую программу
  • tutorial_steps = сколько шагов обучающая имеют

Каждый учебник разбит на несколько шагов.

Мой вопрос: я не знаю, как сохранить шаги, здесь я создал маленькую модель:

ER Model

Если я сохранить все этапы всего урока в одной таблице? Или я должен создать 10 (10 шагов) таблиц. Одна таблица для одного шага.

+0

Простой. Один стол. Ну, две таблицы. Таблица для учебных пособий и таблица шагов. – Strawberry

+0

все в 1 таблице, со столбцами для ссылки на '\' Tutorial \ '. \' Tutorial_id \ '' и какой шаг. 'tutorial_steps' может быть избыточным/ненужным, поскольку вы всегда можете подсчитать, сколько строк находится в таблице шагов. – Sean

+0

Я создаю таблицу с именем ** Tutorial_steps ** и я помещаю каждый шаг в таблицу? – Skeptar

ответ

1

Используйте следующие Tutorial таблицы -> Содержать детали как учебник название, описание и т.д.

Tutorial_steps стола -> Содержать Tutorial-х первичный ключ как внешний ключ в таблице Tutorial_steps. Как

Tutorial_steps : id , tutorial_id , step_number, Your custom fields here. Надеюсь, вы поняли.

+0

Спасибо большое! Потому что я создал 10 таблиц ... Но я удалю их все и создам один для всех шагов, спасибо! – Skeptar

+0

@Skeptar приветствуется. И подумайте, если ваш 1 учебник имеет 10 шагов, у одного есть 4, у вас 6, то как бы вы управляли кодом с 10 таблицами? Скажем, если один учебник содержит 20 шагов, вы вручную создадите еще 10 таблиц? **:) **, если он решает вашу проблему, вы можете сделать Upvote и принять ответ, спасибо. –

+0

Yeha i agree ^^ – Skeptar

1

Что вы хотите сделать, это создать One to Many relationship. Это можно сделать, создав 1 или 2 таблицы (в зависимости от ваших предпочтений) для создания этой ассоциации.

Вы можете создать таблицу шаги которые будут иметь что-то вроде id(int),name(text),... и вы могли бы связать эти шаги с Tutorial по промежуточной таблице называется XREF (or Junction Table). Эта таблица может называться что-то вроде TutorialStepsXref и может выглядеть примерно так с полями tutorial_id(int),step_id(int)

+0

Идентификатор шага не будет правильным, потому что для каждого учебного пособия номер шага 2 будет другим, поэтому здесь не потребуется step_id.Вместо этого вы должны использовать столбец step_number в таблице TutorialStepsXref. У вас есть –

+0

Оба столбца ID предназначены для внешних ключей. – jhansen

+0

. Ok say step_id поступает из таблицы «шаги». Теперь таблица шагов будет иметь структуру, такую ​​как id, step_name, step_description. Верный? Но, видите ли, у вас может быть таблица (с двумя внешними ключами). Только если есть много для многих отношений. но от 1 до многих отношений. Средство 1 учебник -> Много шагов. Его не 1 шаг принадлежит многому учебнику, поэтому его единственный способ 1, от одного до многих. Поэтому нет необходимости в таблице, содержащей 2 внешних ключа. Как? –