представьте себе колледж, где студенты могут записаться на курсы онлайн через веб-сайт.
Каждый курс может иметь определенное максимальное количество принятых студентов, и прием основан на том, кто регистрируется первым.
Например, в классе «Искусство» с 15 доступными местами, только 15 студентов, которые первыми зарегистрировались на этот курс через веб-сайт, могли бы принять участие.
В основном есть три таблицы MySQL:
пользователи (фактически студенты с uid в качестве уникального идентификатора пользователя)
курсы (характеристики курса, такие как название и размер класса; cid (идентификатор курса) является первичным ключом)
links_users_courses (будет содержать три столбца uid, cid, reg_date, где reg_date - переменная даты и времени, отражающая, когда пользователь uid зарегистрировался для курса cid)
Сейчас я ищу решение MySQL для проблемы отображения пользователю A (uid = 100) не только списка всех курсов, в которых он пытался получить место, что было бы простым способом, аналогичным * 1005. *
select cid,coursetitle from links_users_courses left join courses using(cid) where uid=100
но также независимо от того, прошел ли он курс или нет, то есть был ли его временной ранг ниже заданного размера класса каждого курса.
В конце он должен отобразить три столбца: идентификатор курса (cid), набор параметров и статус (зачислен, список ожидания), где список ожидания будет означать, что он находится за порогом для данного класса.