2013-03-21 46 views
1

我正在研究基于数据库SQL Server 2008 R2的Windows应用程序。 此应用程序目前销售给比利时的公司,他们使用四种语言:英语,法语,荷兰语,德语。不久之后,该应用程序将出售给欧洲其他国家以及稍后在美国。针对SQL Server实例和数据库选择哪种归类?

下面是我问自己的问题:

  • 对于SQL Server实例(一个由国家):

    • 哪种语言选择?
    • 我们是否应该对区分大小写和数据库的其他重音做出相同的选择?
    • 必须有二进制排序规则?
    • 对临时治疗的影响(tempdb)?
  • 对于数据库

    • 哪种语言选择?
    • 应该考虑与Windows客户端应用程序一起使用的语言环境吗?
  • 对于开发环境和配方

    • 如何制定和通过管理所有国家测试应用程序?

谢谢您的帮助。

+2

我的小珍闻。当您可能正在部署未知的sql服务器....我总是用一个区分大小写的排序规则来开发。为什么?我学会了艰难的道路。在7.0天之后,我的公司试图在公司的sql服务器上部署我们的数据库,他们希望区分大小写。它延伸到了所有平台。我们中的几个人花了接下来的4天(Th,F,Sa,Su)修复了许多存储程序的CaSe sEnsiTivity。不知道他们为什么对案例敏感如此耿耿于怀。几年之后,当我为数据库编写创建脚本并将排序规则设置为区分大小写时,一些jr开发人员仍然会假发。 – granadaCoder 2013-03-21 13:20:04

+0

+1 @granadaCoder:始终在CS上发展。很多商业工具都无法通过简单的CS服务器上的耻辱和错误测试,因为他们的开发人员在CI服务器上工作... – 2013-03-21 19:12:27

+0

此问题已被[许多次]询问过(http://stackoverflow.com/search? q = sql + server +选择+整理)已经在SO上。不幸的是,最简单的答案是“它取决于”,所以你可以做的最好的事情就是研究这些选项并做一些快速测试,看看你的应用程序设计是否合适。我的两分钱只能使用Unicode数据(即'nchar'和'nvarchar')并使用CI_AI排序规则,因为重音和大小写通常很重要。但是由于您可以在列级别和查询中控制此功能,因此始终可以针对特定数据设置例外。 – Pondlife 2013-03-21 20:32:07

回答

0

在SQL中使用外语或多种语言时,我建议将排序规则设置为CI_AI_SI,以防止在字符/字符串字段(即连接,转换等)中关联任何特殊字符问题。因此,该语言也应该是Unicode。考虑到所有可能遇到的各种情况,这是一个全面的方案。

我也可能建议使用nvarchar而不是标准varchar编程。是的,数据大小增加了一倍,但它应该有助于缓解您在存储过程中可能发生的奇怪转换。

+0

这个建议的问题是“特殊字符”(不管是什么意思)和案例都非常重要。如果我搜索西班牙语单词“mas”,我也不想获得“más”的命中,因为这意味着不同。 – Pondlife 2013-03-21 20:18:44

+0

非常真实。我没有考虑到这一点。我很高兴我们同意根据您的评论以上。谢谢你的收获! – Chris 2013-03-21 21:20:25

相关问题