Структура проектирования / нормализации базы данных должна содержать операторы И, ИЛИ, необязательные элементы и их взаимосвязи

Я хочу сохранить детали курсов колледжа в базе данных (MySql), но я не уверен, как поддерживать связь между модулями и выбранными вариантами.

В принципе, курс может иметь обязательный раздел, группу дополнительных модулей, раздел опций, и в каждом из них могут быть варианты выбора, которые содержат операции И или ИЛИ между модулями.


Простой пример :
Курс на 60 кредитов включает несколько обязательных модулей, которые составляют 40 кредитов. Остается выбрать 20 кредитов из группы дополнительных модулей. (Сами модули могут содержать разное количество кредитов). Эффективно; («Обязательный модуль 1» И «Обязательный модуль 2» ... И «Обязательный модуль N») И (40 баллов из «дополнительных модулей») ,

И и ИЛИ :
Когда я говорю модули выше, это может быть один модуль или это может быть «Модуль x ИЛИ Модуль Y», то есть в обязательном разделе. (эти модули, очевидно, должны иметь одинаковый кредитный вес). Или в необязательном разделе могут быть отдельные модули, или даже один из вариантов может быть что-то вроде «модуль x И модуль y» .

Параметры :
Студентам, возможно, придется пройти обязательные модули плюс один из n вариантов, которые могут содержать или не содержать И, ИЛИ, а также обязательные и дополнительные разделы; т.е. «Вариант» имеет все атрибуты общего выбора модулей курса. Раздел «Параметры» должен быть выполнен оператором «И» или «ИЛИ» с другими разделами, например обязательными или необязательными; т.е. обязательные модули «плюс один из следующих вариантов». Фактически раздел параметров - это просто «Вариант 1» ИЛИ «Вариант 2» ... ИЛИ «Вариант N» .


Проблема в том, как сохранить все отношения И и ИЛИ, когда операндом может быть другая операция И / ИЛИ или отдельный модуль, и отслеживать количество кредитов, разрешенных для каждого выбора; например «20 кредитов из следующего:» (группа дополнительных модулей).

7
задан Adam Lynch 16 January 2012 в 10:21
поделиться