Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2021, 19:11   #1
Илья37
Пользователь
 
Регистрация: 19.02.2020
Сообщений: 46
По умолчанию Как структурировать разветвления данных в БД?

Есть сайт, книга-упражнения, есть два вида страниц, теория и практика, у каждой страницы "теория" есть заголовок, id и фото. У каждой страницы "практика" есть несколько упражнений, заголовок, id и страница, у каждого упражнения есть заголовок и несколько заданий, у каждого задания есть текст и несколько ответов, у каждого ответа есть несколько ответов. Выглядит примерно так:
Код:
             страница
 практика        |       теория 
    \/                     \/
 -id                      -страница
 -страница                -id
 -заголовок               -фото
 *упражнение              -заголовок 
     -заголовок                
     *задание                  
         -текст
         *ответы
             *ответ
Звёздочка значит что этих объектов разное количество, а тире один экземпляр.
И вот вопрос, как это структурировать?
Если создать таблицы теория и практика, то с теорией все понятно - в ней четыре поля(страница, id, фото, заголовок), а с практикой сложнее, допустим я создал таблицу практика, в ней четыре поля(id, страница, заголовок, упражнения), с первыми тремя понятно, просто одно поле, а упражнений разное количество, получается нужно выносить упражнение в отдельную таблицу, а потом к ней ссылаться, но тут опять в таблице упражнения, разное количество задания, приходится тоже выносить в отдельную таблицу, ответов в заданиях тоже разное количество и т.д
Как я понимаю массивов в phpmyadmin нету, а json не хочу использовать. По моей логике, если у объекта разное количество параметров их нужно выносить в отдельную таблицу? Может я просто что-то не понимаю и не туда смотрю, или так и надо.

P.S
Если что-то не понятно объяснил, задайте вопрос.

Последний раз редактировалось BDA; 25.06.2021 в 19:57.
Илья37 вне форума Ответить с цитированием
Старый 25.06.2021, 19:13   #2
Илья37
Пользователь
 
Регистрация: 19.02.2020
Сообщений: 46
По умолчанию

Что-то с моим "выглядит примерно так: ", не так, не знаю как исправить, извините.
Илья37 вне форума Ответить с цитированием
Старый 25.06.2021, 20:00   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,316
По умолчанию

"выглядит примерно так: " - поправил добавлением тега CODE, а еще пробелы нужно расставлять в редакторе с моноширинным шрифтом. На мой взгляд, нужно просто сделать больше таблиц с отношением "один-ко-многим". Например, несколько заданий (таблица "задания") ссылаются на одно упражнение (таблица "упражнения").
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 26.06.2021, 09:44   #4
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 973
По умолчанию

Илья37, можно попробовать хранить в таблице структуру "дерево"

id, id_parent, field_type, info1, info2, info3, ...

тип СУБД не указан. Поэтому пример рекурсивного запроса в MySQL: WITH
Алексей1153 вне форума Ответить с цитированием
Старый 29.06.2021, 12:54   #5
Илья37
Пользователь
 
Регистрация: 19.02.2020
Сообщений: 46
По умолчанию

Спасибо за ответы.
Илья37 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается структурировать вёрстку с помощью flexbox. Подскажите как решить данную проблему skander47 HTML и CSS 0 20.12.2016 17:21
Немогу правильно структурировать программу. Демик Общие вопросы C/C++ 1 30.03.2012 09:32
Как лучше структурировать БД? MrJenika PHP 5 04.12.2010 18:10
Разветвления AcidBurst Помощь студентам 3 27.09.2010 22:04
как упростить код, используя только массивы, циклы, разветвления и указатели? laxe Общие вопросы C/C++ 22 01.09.2009 09:16