84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
常见场景:假如我要添加一行唯一的相册和用户的收藏记录。我目前想到两种方法:
提前查询是否已经存在aid和uid,然后判断是否进行添加————代码层面。
给aid和uid添加unique key,然后利用php的try catch进行处理————数据库层面。
以上两种方式哪种更好呢?有没有一些好的php最佳实践?
两种都可以,不管哪种方法UNIQUE(aid, uid)都是必须的。从效率来说,直接try比较好,注意catch的时候要识别错误码,如果不是唯一键冲突引发的异常要另行处理。
aid
uid
给关键字段加 Unique索引 啊!直接看数据库的返回值就好了,你程序再怎么判断,也不可能快过数据库本身啊。
Unique索引
MySQL? REPLACE INTO ……
1 简单直接
1、MySQL可以用REPLACE INTO
2、否则的话,先查询是否存在,存在则替换,不存在则插入。
注意防止重复提交,生成2条相同纪录(前端表单使用token令牌,在上面2中使用事务)。
两种都可以,不管哪种方法UNIQUE(
aid
,uid
)都是必须的。从效率来说,直接try比较好,注意catch的时候要识别错误码,如果不是唯一键冲突引发的异常要另行处理。
给关键字段加
Unique索引
啊!直接看数据库的返回值就好了,你程序再怎么判断,也不可能快过数据库本身啊。MySQL? REPLACE INTO ……
1 简单直接
1、MySQL可以用REPLACE INTO
2、否则的话,先查询是否存在,存在则替换,不存在则插入。
注意防止重复提交,生成2条相同纪录(前端表单使用token令牌,在上面2中使用事务)。