gpt4 book ai didi

postgresql - 您如何向用户公开区分大小写?

转载 作者:行者123 更新时间:2023-11-29 12:34:32 28 4
gpt4 key购买 nike

好的,我明白了。 PostgreSQL 中的数据区分大小写。而且我知道我可以使用 LOWER() 使我的查询不区分大小写。我知道在未来的 PostgreSQL 版本中甚至可能会有一个“citext”类型。我的问题是,今天,您在设计用户界面时如何处理这个问题?我正在特别考虑唯一性约束。

假设我的应用程序的数据看起来或多或少像一个文件系统(想想 Google Docs,除了 Google Docs 实际上允许重复名称:-P)。如果情况不同,我怎样才能让我们的用户更容易理解他们可以有重名这一事实?我认为对大多数人来说,这看起来很奇怪

让我们先发制人地解决一些问题:

  1. 我有 Windows 背景,所以不区分大小写是我的“想法”。我现在主要使用 Mac OS X,它(你知道吗?)是 also case-insensitive .我们的大多数用户都属于这两个相同的类别。

  2. 我是 PostgreSQL 的新手。我的大部分经验是使用 MySQL,但我也使用过 Oracle,它像 PostgreSQL 一样区分大小写。我当时也对这个问题想了很多,但最终一切都保持原样,让我们​​的用户自行解决。

  3. 我对技术解决方案(即让这个问题消失)和 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/

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