Например пользователь лайкает видео. У видео есть метки например: США, война, Сирия.
В MySQL есть таблица меток
id | tag
1 | USA
2 | Siria
3 | war
После того как пользователь лайкает видео, надо чтобы метки приставились к пользователю и дальше приплюсовывались к нему, если пользователь лайкает еще одно видео, с такими же метками. То есть он лайкнул видео, с меткой США. И в БД надо положить пользователь с id 1 полюбил метку usa 1 раз, если еще раз лайкнет, то уже 2 раза полюбил эту метку.
Как осуществить это, какие таблицы надо сделать ?
Первый подход. Делаем таблицу user_tags
с полями user_id
и tag_id
. Каждый раз, когда пользователь лайкает видео, записываем метки в таблицу:
insert into user_tags (user_id, tag_id) values (user, tag);
Когда нужно посчитать, сколько раз пользователь лайкнул ту или иную метку, делаем такой запрос:
select count(user_id) form user_tags where tag_id = 1;
Плюс: простая вставка. Минусы: быстро растущая таблица и необходимость использования статистической функции при каждой выборке.
Второй подход. Делаем таблицу user_tags
с полями user_id
, tag_id
и quantity
. Первые два делаем составным ключом. При записи проверяем, есть ли в базе запись с таким ключом. Если есть, то делаем update
, увеличивая на 1 число в quantity
. Если нет, делаем insert
, вставляя в quantity
1.
Плюсы: более компактная таблица, простые поиск и выборка. Минус: более сложная логика вставки записей.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Вы переодически забываете указывать знак $ перед именем переменнойКлючи массива заключайте в кавычки
Помогите написать цикл для добавления множества пользователей разом вот метод добавления юзера
Всем приветГде лучше (быстрее) сортировать данные в mysql или php ?
Как подключится к MySQL через java? И как сделать добавление запроса?