PostgreSQL中,用户表中的用户名字段,该如何设计,来保证【不区分大小写】的UNIQUE


请教大家,如标题中的需求,该如何设计这个表:

  1. 使用 CITEXT 类型?这个类型是扩展类型,似乎在psql版本升级的时候,会出错。
  2. 设计两个字段: username nickname ,nickname就是用户输入的,而username在系统内部给转换成全部小写的,在用户注册需要验证是否用户选择的用户名可以注册,就检查 username 字段。但是多一个多余的字段,总觉得不太好!

还有没有其他的方法?

另外,大家可否推荐一些psql做数据库的开源项目,我学习下,在github没搜索到什么像样的。

PostgreSQL

msgybs 10 years, 2 months ago

应用容器层解决这种问题不就行了,搞Web产品,不能整C/S的玩法,单纯依赖数据库。

冰-ica answered 10 years, 2 months ago

这个问题我刚纠结完毕

创建索引时酱紫:
create index index_name on table using btree(lower(field))
查询时,酱紫
select * from where lower(field)='value'

会用到索引。

katans answered 10 years, 2 months ago

Your Answer