2013-03-21 73 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