sql-server - 在数据库中存储标题以允许在没有前导 "The"、 "A"的情况下进行排序的最佳方法是什么

标签 sql-server database-design sql-server-2000

我运营(目前正在彻底检修)一个与戏剧相关的网站(njtheater.com,如果您感兴趣的话)。

当我从数据库中查询戏剧列表时,我希望将“威尼斯商人”排序在“M”下。当然,当我显示剧名时,我需要在前面加上“The”。

设计数据库来处理这个问题的最佳方法是什么?

(我使用的是 MS-SQL 2000)

最佳答案

您的两列是正确的,但我建议将整个可显示标题存储在一列中,而不是连接列。另一列纯粹用于排序。这为您提供了排序和显示方面的完全灵 active ,而不是受制于简单的前缀。

这是搜索时相当常见的方法(与排序相关)。一列(带有索引)是大小写折叠、不标点符号等。在您的情况下,您还可以将删除主要文章的语法约定应用于该字段中的值。然后将该列用作搜索或排序的比较键。另一列未建立索引,并保留原始键用于显示。

关于sql-server - 在数据库中存储标题以允许在没有前导 "The"、 "A"的情况下进行排序的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/278758/

相关文章:

mysql - 网上申请的各类文件需要建立哪些表来存储?

sql-server-2008 - 如何处理存储过程以实现兼容性

sql - 如何在sql server 2005中以文本形式查看作业

c# - Microsoft SQL Server Management Studio 说 RowVersion 是无效类型

sql - 如何找出 spid 状态暂停的原因? spid 正在等待什么资源?

sql-server - 如何从Azure VM下载100Gb文件?

sql - 哪里喜欢超过 varchar(500)

sql - 选择查询时选择大小写

mysql - 大量写入/插入会影响数据库索引吗?

postgresql - 我可以在我的数据库设计中避免关系循环吗?