MySQL如何保证多字段唯一


当前第2页 返回上一页

假设有一个需求是用户给评论点赞,数据库设计是三张表,用户表t_user,评论表t_comment,点赞表t_praise,其中点赞表中有两个外键分别是user_id和comment_id,分别关联用户表的用户id和评论表的评论id,然后规定一个用户只能给同一条评论点赞一次,有一种实现方式就是在插入点赞表之前,先通过user_id和comment_id查询是否有点赞记录,如果没有的话,再执行插入操作,否则返回您已经点过赞了.这样实现的话就会多一次数据库查询操作.更好的实现是,修改点赞表的user_id和comment_id为唯一约束,即这两列不能同时相同,这样在执行插入操作的话,如果已经点过赞了,数据库会抛出违反了唯一键约束,这样的话,就可以避免多一次数据库查询操作了.具体设置多列为唯一约束的语句是:

1

2

3

4

5

6

7

8

9

CREATE TABLE `t_praise` (

  `id` int(12) unsigned NOT NULL AUTO_INCREMENT,

  `comment_id` int(12) NOT NULL,

  `user_id` int(12) NOT NULL,

  KEY `FK_t_praise_comment` (`comment_id`),

  KEY `FK_t_praise_user` (`user_id`),

  UNIQUE KEY `UK_praise` (`comment_id`,`user_id`)

 

)

以上就是MySQL如何保证多字段唯一的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

mysql中调试存储过程最简单的方法

pgsql与mysql有什么区别

mysql数据类型有哪些

mysql数据控制语言

mysql oracle 哪个好学?

常用mysql函数有哪些?

mysql怎么查看用户名?

如何查mysql的ip地址

mysql中b-tree引索和hash引索的区别?

mysql索引有哪些类型

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...