84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
常见场景:假如我要添加一行唯一的相册和用户的收藏记录。我目前想到两种方法:
提前查询是否已经存在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中使用事务)。