`
wudixiaotie
  • 浏览: 132888 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

验证唯一性的不足

阅读更多

唯一性验证无法真正保证唯一性。

validates :email, presence: true,
                          format: { with: VALID_EMAIL_REGEX },
                          uniqueness: { case_sensitive: false }

 不会吧,哪里出了问题呢?下面我来解释一下。

  1. Alice 用 alice@wonderland.com 注册;
  2. Alice 不小心按了两次提交按钮,连续发送了两次请求;
  3. 然后就会发生下面的事情:请求 1 在内存中新建了一个用户对象,通过验证;请求 2 也一样。请求 1 创建的用户存入了数据库,请求 2 创建的用户也存入了数据库。
  4. 结果是,尽管有唯一性验证,数据库中还是有两条用户记录的 Email 地址是一样的。

 相信我,上面这种难以置信的过程是可能会发生的,只要有一定的访问量,在任何 Rails 网站中都可能发生。幸好解决的办法很容易实现,只需在数据库层也加上唯一性限制。我们要做的是在数据库中为 email 列建立索引,然后为索引加上唯一性限制。

 

通俗的来讲意思就是给这一列建立唯一性索引,来保证在数据库层数据是唯一的。

唯一性索引和普通索引的区别在于唯一性索引所属的列数据都具有唯一性。

分享到:
评论

相关推荐

    简单的jquery用户名唯一性验证

    jquery用户名唯一性验证 很简单的 只是个简单简单的jquery用户名唯一性验证

    Ajax验证用户的唯一性

    针对初学者,学习Ajax验证用户的唯一性实战是为了巩固Ajax,Jquery,Json与Struts2基础知识,具体内容如下 浏览效果图: 那我们就开始了,操作步骤如下 1.首先我们先导入所需要的包及文件 Json 包: struts2 包:...

    如何使用jquery实现异步验证用户名的唯一性

    本工程旨在研究如何使用jquery实现异步验证用户名的唯一性的功能。 本工程编码方式:UTF-8

    检验数独解的唯一性

    检验数独解的唯一性 但目前还有一些问题 可以做一部分

    AJAX实现账户ID唯一验证

    AJAX实现账户ID唯一验证,异步JavaScript和xml的结合。

    基于jQuery实现的Ajax 验证用户名唯一性实例代码

    本文分为jsp代码和后台代码给大家介绍了基于jQuery实现的Ajax 验证用户名唯一性,非常不错,具有参考借鉴价值,需要的的朋友参考下吧

    ajax检验注册唯一性验证

    用ajax做的一个检查注册用户是否已注册过,返回相应提示信息

    java中设置登录名的唯一性

    这个方法可以有效地设置登录名活用户名的唯一性,很好的一个方法。

    AJAX 用户唯一性验证实现代码

    用ajax实现用户名的检测,提示是否重复的实现代码。

    标识码BSM唯一性检查工具

    高效地理信息数据库BSM标识码唯一性验证工具 工具专为确保地理信息数据库中的标识码唯一性和数据完整性而设计,它强调了以下几个关键特性: 1.精准字段验证:用户可自定义关注的字段,针对特定标识码执行严格的一致...

    测试多种方法生成唯一性随机码Demo

    采用多种方法通过生成随机数的方式验证流水号的重复率与唯一性

    dwr实现用户ID的唯一性验证

    dwr是ajax的进一步封装,可以在其不刷新页面的情况下实现数据的提交或获取。

    用户名异步验证

    ajax技术做用户名的异步验证,内含jdbc连接数据库.

    Ajax邮箱、用户名唯一性验证实例代码

    废话不多说了,直接给大家贴代码了,具体代码如下所示: [removed] $(function () { $("#txtEmail").blur(function () { $.ajax({ type: "post", url: "reg.ashx?email=" + $.trim($("#txtEmail").val()) + ...

    通用指纹身份验证系统v4.8官方免费安装版

    由于每一个人的每一个手指的指纹信息是唯一性、不可仿造性,系统无需其他辅助身份证明物品就能正确鉴识人的身份,比采用户口薄、工作证、身份证、会员卡等证明物品的方式更方便省事、更不可替代,快来下载体验吧。

    jquery验证

    jquery的验证组件easyvalidator 另一个是form验证组件:FormValid easyvalidator.js改写的,结合了FromValid的验证,如果有多条验证信息时,明确...改写了url后台验证,不过有局限性,适用于唯一性验证,后台要自己写。

    天盾网络验证726免费版.zip

    8、 [修复] 辅助_取唯一机器码()重复率过高,推荐 验证_初始化()命令后加一句 辅助_置机器码(辅助_取唯一机器码_MAC版() +辅助_取唯一机器码_硬盘特征版()) 9、 [优化] 优化成品加验证工具,加劫持补丁后会一...

Global site tag (gtag.js) - Google Analytics