Мне нужно сохранить список идентификаторов пользователей, которые просматривали страницу, транслировали песню и / или загружали ее. Что я делаю со списком, так это добавляю и показываю. Мне не нужно больше сохранять информацию, и я предложил два решения. Какой из них лучше, или есть еще лучшее решение, которое я пропустил:
Решение KISS - 1 таблица с первичным ключом, идентификатором песни и текстовым полем для каждого из трех описанных выше взаимодействий (просмотр, загрузка, потоковая передача), в которых будет разделенный запятыми список идентификаторов пользователей. Добавление к нему будет простой операцией конкатенации.
Лучшее практическое решение - иметь 3 таблицы с первичным ключом, идентификатором песни и полем идентификатора пользователя, который выполнял взаимодействие. Каждая строка имеет один идентификатор пользователя, и я мог бы добавить такие вещи, как дата и другие вещи.
Одна вещь, которая заставляет меня склоняться к варианту 2, заключается в том, что может быть проще проверить, голосовал ли уже пользователь за песню?
tl; dr version - лучше ли использовать текстовое поле для сохранения массивов в виде значений, разделенных запятыми, или иметь каждый элемент в массиве в отдельной строке таблицы.