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