- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,我明白了。 PostgreSQL 中的数据区分大小写。而且我知道我可以使用 LOWER() 使我的查询不区分大小写。我知道在未来的 PostgreSQL 版本中甚至可能会有一个“citext”类型。我的问题是,今天,您在设计用户界面时如何处理这个问题?我正在特别考虑唯一性约束。
假设我的应用程序的数据看起来或多或少像一个文件系统(想想 Google Docs,除了 Google Docs 实际上允许重复名称:-P)。如果情况不同,我怎样才能让我们的用户更容易理解他们可以有重名这一事实?我认为对大多数人来说,这看起来很奇怪。
让我们先发制人地解决一些问题:
我有 Windows 背景,所以不区分大小写是我的“想法”。我现在主要使用 Mac OS X,它(你知道吗?)是 also case-insensitive .我们的大多数用户都属于这两个相同的类别。
我是 PostgreSQL 的新手。我的大部分经验是使用 MySQL,但我也使用过 Oracle,它像 PostgreSQL 一样区分大小写。我当时也对这个问题想了很多,但最终一切都保持原样,让我们的用户自行解决。
我对技术解决方案(即让这个问题消失)和 UI 设计解决方案(即帮助用户对系统感到舒适)都很感兴趣。
总结:
编辑:我感谢到目前为止的所有反馈。但是,如果答案是“不允许重复名称,如果它们因大小写不同”,那么我如何在 PostgreSQL 中实现它? 我考虑过的一种解决方案是默默地维护一个单独的列,该列始终是数据的 LOWER() 版本,并将唯一约束放在该列上。
最佳答案
您可以使用 citext现在的数据类型。虽然它可能比 future 的内置版本有更多的限制。
编辑至于unique constraint :
CREATE UNIQUE INDEX
example_unique_idx
ON
example_table ((LOWER(case_insensitive_field)));
关于postgresql - 您如何向用户公开区分大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/690643/
我是一名优秀的程序员,十分优秀!