我正在使用 SQL 2008 在 .NET 中开发多租户应用程序。每个租户都可以指定自己的语言。例如,一家中国公司可能会使用我的应用程序,并希望通过中文字符对他们的所有数据进行排序和搜索。一家德国公司可能会使用我的应用程序,并希望通过德语字符对他们的所有数据进行排序和搜索。
我希望有一个数据库来存储所有数据,按租户 ID 分段。
一个表可能看起来像这样:
成员
TenantID MemberID 名称
1234 5678 约翰
1235 5679 简
数据将存储在 unicode 列 (nvarchar) 中。我还想使用全文索引器来索引数据。
在所有数据都存储在同一个数据库中的多租户环境中,如何最好地处理排序规则?
我应该在查询字符串中指定排序规则(即SELECT * FROM Members ORDER By Name Collate(中文))吗?动态传递排序规则是否存在任何性能问题,尤其是当列上的索引以一种特定语言排序时?
还是为每种语言都有一个数据库并在运行时确定要使用的连接字符串会更好吗?
另外,如何最好地处理全文索引?我相信它只能用一种语言索引,并且每个表只能指定一个索引。
还有什么要考虑的吗?
谢谢!