gpt4 book ai didi

mysql - Ruby on Rails 多个唯一列

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:03 25 4
gpt4 key购买 nike

我有 Users 表,其中包含 id、user_name、email、password 列,默认情况下,id 是主键,然后我设置 user_nameemail 是唯一的。不知道多个唯一列是否能保证每列的值不重复,或者唯一列的值加在一起不重复?我的意思是,以下哪种情况是正确的?

最佳答案

这里有两个选项:

分别设置每一列的唯一性

validates :email, uniqueness: true
validates :name, uniqueness: true

最好用例子来解释这个行为

| id | name |   email   |
|–––––––––––––––––––––––|
| 1 | Dave | d@g.com |
| 2 | Dave | d2@g.com | # invalid, as Dave is a duplicate
| 3 | Mary | m@g.com | # valid, both values are unique

将唯一性设置为范围

validates :email, uniqueness: { scope: :name }

例子

| id | name |   email   |
|–––––––––––––––––––––––|
| 1 | Dave | d@g.com |
| 2 | Dave | d2@g.com | # valid, as the combination of Dave & d2@g.com is unique
| 3 | Mary | m@g.com | # valid, both values are unique
| 4 | Mary | m@g.com | # invalid, as the combination already exists

关于mysql - Ruby on Rails 多个唯一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26575513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com