Как бы вы разработали таблицы для обработки регистрационной формы и цен на предстоящее мероприятие?
Как видно из таблицы ниже:
+-----------------------------+-------------------+----------------+--------------+
| Occupation/Level | Optional Item | Base Price | Early Bird Price |
+-----------------------------+-------------------+------------+------------------+
| Residents | | $1000 | $800 |
+--------------------------------------------------------------+------------------+
| Practitioners | Exam Prep (+$500) | $1500 | $1300 |
+--------------------------------------------------------------+------------------+
| OBYGN Consultant - Friday | | $800 | $900 |
| OBYGN Consultant - Saturday | | $800 | $900 |
| OBYGN Consultant - Sunday | | $600 | $700 |
| OBYGN Consultant - All Days | | $1900 | $2100 |
+-----------------------------+-------------------+------------+------------------+
- разные цены взимаются в зависимости от профессии участника.
- практикующие имеют доступ к дополнительной подготовительной сессии к экзамену за дополнительную плату.
- OBGYN Консультанты имеют возможность зарегистрироваться на один / несколько дней; каждый из которых взимает различную сумму
Чтобы проиллюстрировать детали, вот скриншот старой регистрационной формы.
Моя первоначальная идея состоит в том, чтобы сделать это очень простым, обрабатывать каждую строку отдельно и хранить сумму вместе с ней. Дни, которые может выбрать консультант OBGYN, просто становятся еще одной строкой в таблице.
+----+---------------------------+----------------+------------------+
| ID | Occupation/Level | Base Price | Early Bird Price |
+----+---------------------------+----------------+------------------+
| 1 | Residents | $1000 | $800 |
| 2 | Practitioners | $1500 | $1300 |
| 4 | OBYGN_Consultant_Friday | $800 | $900 |
| 5 | OBYGN_Consultant_Saturday | $800 | $900 |
| 6 | OBYGN_Consultant_Sunday | $600 | $700 |
| 7 | OBYGN_Consultant_All_Days | $1900 | $2100 |
+----+---------------------------+----------------+------------------+
Таблица option_materials будет обрабатывать любые курсы, которые имеют дополнительные опции.
+----+----------+-----------+--------+
| ID | CourseID | Name | Amount |
+----+----------+-----------+--------+
| 1 | 2 | Exam Prep | $500 |
+----+----------+-----------+--------+
Видите какие-либо серьезные проблемы с этим дизайном ИЛИ видите лучший способ справиться с этим?