SQL 2008 を使用して .NET でマルチテナント アプリケーションを開発しています。各テナントは独自の言語を指定できます。たとえば、中国の会社が私のアプリケーションを使用し、すべてのデータを並べ替えて漢字で検索できるようにする場合があります。また、ドイツの会社が私のアプリケーションを使用し、すべてのデータを並べ替えてドイツ語の文字で検索できるようにする場合があります。
テナント ID でセグメント化されたすべてのデータを格納する 1 つのデータベースが必要です。
テーブルは次のようになります。
メンバー
テナント ID メンバー ID 名
1234 5678 ジョン
1235 5679 ジェーン
データは Unicode 列 (nvarchar) に格納されます。また、フルテキスト インデクサーを使用してデータのインデックスを作成したいと考えています。
すべてのデータが同じデータベースに格納されているマルチテナント環境で照合を処理するにはどうすればよいですか?
クエリ文字列で照合を指定する必要がありますか (つまり、SELECT * FROM Members ORDER By Name Collate (中国語))? 特に列のインデックスが特定の言語でソートされている場合、照合を動的に渡す際にパフォーマンスの問題はありますか?
それとも、言語ごとにデータベースを用意し、実行時に使用する接続文字列を決定する方がよいでしょうか?
また、全文索引をどのように処理するのが最善でしょうか? 1 つの言語でしかインデックスを作成できず、テーブルごとに 1 つのインデックスしか指定できないと思います。
他に考慮すべきことはありますか?
ありがとう!