Мне нужно сохранить список идентификаторов пользователей, которые просмотрели страницу, передали песню и/или загрузили ее. Что я делаю со списком, добавьте его и покажите. Мне действительно не нужно сохранять больше информации, чем я, и я придумал два решения. Какой из них лучше, или есть еще лучше решение, которое я пропустил:Сохраните список идентификаторов пользователей в таблице mysql
поцелуй решение - 1 таблица с первичным ключом песня ид и текстовым полем для каждого из трех взаимодействий выше (вид, скачать , stream), в котором будет указан список идентификаторов пользователей, разделенных запятыми. Добавление к нему будет всего лишь конкатенацией.
Решение «Лучшая практика» - иметь 3 таблицы с первичным ключом идентификатор песни и поле идентификатора пользователя, которое осуществляло взаимодействие. Каждая строка имеет один идентификатор пользователя, и я мог бы добавлять такие вещи, как дата и другие вещи.
Одна вещь, которая заставляет меня наклоняться к вариантам 2, состоит в том, что может быть проще проверить, проголосовал ли пользователь за песню?
Т.Л., др версия - это лучше использовать текстовое поле, чтобы сохранить массивы значений, разделенных запятыми, или каждый элемент массива в отдельной строке таблицы.
Я всегда удивляюсь, как быстро я получаю хороший ответ ... Большое вам спасибо, я, вероятно, сделаю это. Предлагаете ли вы использовать хранимую процедуру для обработки всех накладных расходов таблицы операций или сделать это в коде? – Mikle
Это более субъективный ответ, я думаю. Мне лично нравятся хранимые процедуры, но они никогда не используют их. Зачем? Потому что мне не нравится кодирование в SQL, вот и все. Но я считаю, что сильная БД должна иметь в себе всю логику, включая внешние ключи, противопоказания и CRUD-логику, когда это возможно. – Seb
Я бы пошел без хранимых процедур. Что делать, если приложение растет, и кто-то решает изменить механизм базы данных. Являются ли хранимые процедуры полностью переносимыми? Кроме того, более читаемо видеть, что происходит внутри метода класса или двух. А также 2: я не встречал никого, кто любит кодирование в SQL. –