【发布时间】:2021-08-28 06:27:21
【问题描述】:
我正在使用 mysql (mariadb)。 我有一张表“events_ratings”,其中包含 4 列
CREATE TABLE `event_ratings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_event` int(11) NOT NULL,
`rating` int(1) NOT NULL,
`id_user` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL
PRIMARY KEY `id`,
ADD CONSTRAINT `idevent` FOREIGN KEY (`id_event`) REFERENCES `events_fb` (`id`) ON UPDATE CASCADE,
ADD CONSTRAINT `iduser` FOREIGN KEY (`id_user`) REFERENCES `users` (`id`) ON UPDATE CASCADE;
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
此表的目的是提供用户评分,因此:
- 每个用户都可以对事件进行评分(基于他唯一的“id_user”)。用户可以根据需要对许多事件进行评分,但不能对同一事件进行评分。
所以基本上 id_user 和 id_event 不应该有重复的值。 我知道如何使列唯一,但如何基于两个字段进行约束?
谢谢
【问题讨论】: