xjdata 2015-09-03 02:54:28 2745次浏览 0条回复 0 0 0

大家好,提这个问题还是因为避免重复提交。

比如,yiichina 说说部分,假设 表中有字段,user_id,created_at,content 那么我们建立唯一规则时 一般情况下会进行 user_id,created_at联合唯一。 但是当某些情况下, 我们在点击发布的时候 如果按钮没有通过js进行限定或客户端禁用js,那么我在一个比较短的时间内(点击按钮到收到服务器响应进行跳转这段时间内)有多次进行点击了。或者在提交的时候 每个1秒点一次提交,一共点了10次。 经过个人测试,是会产生10条 逻辑上重复的数据的。 但是表内存储的内容确实是唯一的。

比如

user_idcreated_atcontent
1100内容
1101内容
1102内容
1103内容
1104内容
1105内容
1106内容
1107内容
1108内容
1109内容

这就出现了 逻辑上的重复数据了。

想到不行就联合验证3个字段的内容
[['user_id', 'created_at'], 'unique', 'targetAttribute' => ['user_id','created_at', 'content']],

于是问题是: 1.因为content 是varchar并且内容可能会比较多,那么yii在进行 unique 的时候会不会消耗比较大? 2.对于我说的这种情况,各位有什么好的办法吗? 3.在一个应用中 需要防止重复提交的地方应该是比较多的。如果通过php后台方式进行避免重复,难道每个action中都要进行相应代码的编写吗?那不一堆一堆的重复了?

欢迎大家指导,讨论,谢谢。

    没有找到数据。
您需要登录后才可以回复。登录 | 立即注册