Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как назвать столбец в базе который будет хранить id пользователей которые ввели текущий промокод?

Давид Мейстер Мастер (2058), закрыт 2 недели назад
Условно есть промокод "IPROMONA30", нужно сделать json столбец который будет хранить id всех пользователей которые ввели этот промокод, как по правильному назвать этот столбец?
Лучший ответ
Андрей Высший разум (436252) 1 месяц назад
Это бессмысленно. Должно быть не поле, содержащее все id'ы пользователей, а отдельная таблица, содержащая уникальный ключ, состоящий из id промокода и id пользователя. У тебя же связь многие-ко-многим между таблицами "Пользователи" и "Промокоды".
Давид МейстерМастер (2058) 1 месяц назад
Немного не понимаю разницу между этими методами, так нужно делать только из-за производительности? Такое ощущение как будто это будет только больше тратить и памяти и скорости, данные ведь так и так извлекаются из promo, просто вместо одного запроса на выходе будет 2, а то и 3.

Можете подсказать преимущества между использованием вашего метода и недостатки метода который предложил я?
Андрей Высший разум (436252) Давид Мейстер, Предположим, тебе понадобятся все промокоды, которые применял пользователь X. Ты будешь просматривать всю таблицу промокодов - в каждой её строке в JSON-поле разыскивая этого пользователя? Кроме того, содержимое JSON поля никак не контролируется. А при создании отдельной таблицы, связанной внешними ключами с Промокодами и Пользователями СУБД обеспечивает контроль целостности данных. JSON-поля имеют смысл, только когда их содержимое никак не связано с другими таблицами БД.
Остальные ответы
Похожие вопросы