Я использую одну таблицу, обзоры, для хранения обзоров по нескольким темам, песням, исполнителям и альбомам, и обзоры поступают от нескольких пользователей. Я хотел бы найти способ предотвратить дублирование отзывов от одного пользователя для данной песни, исполнителя или альбома. Пока я пытаюсь сделать это в PHP, я бы хотел, чтобы MYSQL обеспечивала уникальность, используя индекс UNIQUE для идентификатора пользователя и идентификатора песни.
Однако я столкнулся с проблемой, что записи показывают 0 для неприменимых полей. Например, если обзор посвящен идентификатору песни, в таблице отображается 0 для идентификатора исполнителя и идентификатора альбома.
Reviews
reviewid (primary key)|text|songid|albumid|artistid|userid
1|great song|222|0|0|22
2|great album|0|333|0|22
3|great singer|0|0|444|22
//I want to exclude the following entry:
4|lousy song|222|0|0|22
Может ли кто-нибудь предложить способ создания уникального индекса, который каким-то образом решает эту проблему?
Спасибо за любые предложения.