Можно создать дубликат:
Rating System in PHP and MySQLКак хранить рейтинги в базе данных MySQL
Я работаю на рейтинговой системе по шкале от 1 до 10. Я хочу быть в состоянии держать отслеживать все рейтинги пользователей и если они уже оценили этот конкретный элемент.
Примечания: - У меня есть вход в систему, поэтому каждый пользователь имеет уникальный идентификатор в базе данных. -Все конкретный элемент также имеет уникальный идентификатор.
Мой вопрос: Как следует хранить эту информацию в базе данных наилучшим образом.
Это, как я имею в виду сделать это:
Unique_Key | Item_ID | User_ID | User_rating
1 1 1 (1-10)
2 1 2 (1-10)
3 2 2 (1-10)
4 3 1 (1-10)
5 4 1 (1-10)
Так что, если ITEM_ID пользователь рейтинг уже в БД с их User_ID они не будут в состоянии оценить, в противном случае они могут.
Я ищу предложения, если это безопасный, чистый способ сделать это, прежде чем начинать кодирование. Спасибо.
Я отредактировал его, как вы думаете, его хорошо? – Skovy
Нет, не добавляйте еще одну колонку. Скажите двигателю SQL, что 'itemID' и' userID' могут быть вставлены только в одну комбинацию. Если вы определяете уникальный ключ и хотите дважды вставить (1,2), то SQL не позволит вам. –
Хорошо, вы имеете в виду проверку на эту комбинацию, и если она существует, не разрешайте другой rate/entry else, если он не существует, идите дальше и продолжайте? – Skovy