Как записать несколько значений в одном поле MySQL?
Добрый день!
Переделываю платформу для просмотра видеоуроков. Используется PHP, MySQL, RedBeanPHP
Как это работает сейчас: В таблице в MySQL у каждого пользователя есть строка, в которой содержатся:
1. ID курса, на который он подписан
2. Номер дня недели, в который начались его занятия
3. Количество доступных видеоуроков
Новые видеоуроки становятся доступны раз в неделю. Запросом mysqli_query вручную всем записям, с соответствующим номером дня недели (например 2 - вторник) устанавливается новое количество доступных уроков.
Когда пользователь заходит в личный кабинет, с помощью mysqli_query с лимитом равным количеству доступных конкретно ему видеоуроков и цикла while показываются первые n уроков его курса
В чем недостатки:
1. Пользователь может быть подписан только на 1 курс (с осени когда пользователи будут подписываться на новые курсы, нужно, чтобы старые не исчезали);
2. Пользователю может быть доступно только одно количество уроков.
Что нужно:
Записать для одного пользователя сразу несколько курсов, на которые он подписан. При этом, количество доступных ему уроков может быть разным (Например, на курс 1 он записался раньше, и там ему уже доступны 4 урока. А на курсе 2 ему доступны только 2 урока). Подскажите пожалуйста, как это реализовать более оптимально?
Поставьте триггер на insert для описанной вами таблице.
Создать таблицу "config", в ней храните для каждого курса количество доступных уроков "available_lessons".
В ранее созданном триггере получать по id курса из таблицы config поле "available_lessons" и подставлять это значение в 3 столбец вашей таблицы.
ну и есть у меня СУЩНОСТЬ, ну и есть у СУЩНОСТИ код страны (Название страны по коду нужно выбрать из другой таблицы) и есть у Сущности ЛОГИН, но он хранится в сущности User (Логин нужно выбрать из другой таблицы по id_user, принадлежащего СУЩНОСТИ)
Владимир Коротенко, и если у меня написано в БД значение - test, то какая разница: я по where = test его выбираю или по like? Видимо эти знаки процента в запросе like придают значимость какую-то, когда я больше зарплату попрошу за like вместо where?
Или Вы просто думаете, что Ваш начальник дебил тупой и согласен платить больше только за то, как Вы его грузите тем, что он давно уже прошёл?)))
Мега Синяк, с ним бессмысленно разговаривать, у него опыт на уровне 3 месяцев разработки.
про то что данных в бд бывает много, а не 10 записей, которые он привык "обрабатывать в приложении" он как бы теоретически в курсе, но практических выводов сделать не в состоянии, потому что никогда на практике с этим не сталкивался.
про то что лайк ставит крест на индексах он тоже не знает
он тут прижился, несет пургу для поднятия самооценки, но сделать с этим ничего нельзя, увы.
Антон Р., А как ваша картинка к джойнам относится?
A = {Т, К, Д, В, 10, 9, 8, 7, 6, 5, 4, 3, 2}
B = {♠, ♣, ♥, ♦}
A INNER JOIN B = A ⨯ B = {{Т, ♠}, {К, ♠}, ... {2, ♠}, {Т, ♣}, ..., {2, ♦}}
Но A ∩ B = {}
У вас A INNER JOIN B == A ∩ B, что неверно.