PostgreSQL 不区分大小写,大家推荐的方案或者用 citext, 或者自定义的 validator
但是我用 gorm 作为 orm,没有看到 gorm 的支持,请教大家
为何你不用小写来建表?
用一个额外的字段,然后 index UserName_LowerCase, 查询的时候把 Lower(UserName)作为 key 对吗?
UserName_LowerCase
Lower(UserName)
UserName varchar UserName_LowerCase varchar
gorm 最终不是转换成 sql 执行的吗?只要你创建表时 column 设定加上 CITEXT 就可以了啊
如果你是说 gorm 定义 struct 时指定 citext 这个就不清楚了,官方问比较好。
俺们 rails 内,就很简单了,我们的口号是”能不刀耕火种,就不刀耕火种"
ActiveRecord::Schema.define(version: 2020_05_04_062010) do enable_extension "citext" create_table "users", force: :cascade do |t| t.citext "login", null: false t.citext "name" t.citext "email", null: false end end
rails 的确很好。在 rails 和 go 之间纠结了很长时间,甚至都学了基本的 ruby 和 rails agile, 最终还是忍痛放弃了.. 还是希望项目将来对新人和对团队更容易上手。