Я разрабатываю мультитенантное приложение в .NET с SQL 2008. Каждый арендатор может указать свой собственный язык.Например, китайская компания может использовать мое приложение и хотеть, чтобы все их данные были отсортированы и доступны для поиска с помощью китайских символов.И немецкая компания может использовать мое приложение и хотеть, чтобы все их данные были отсортированы и доступны для поиска по немецким символам.
Я надеюсь иметь одну базу данных для хранения всех данных, сегментированных по тенантиде.
Таблица может выглядеть примерно так:
Члены
TenantID MemberID Имя
1234 5678 Джон
1235 5679 Джейн
Данные будут храниться в столбцах Unicode (nvarchar).Я также хотел бы использовать полнотекстовый индексатор для индексации данных.
Как лучше всего выполнять сортировку в многопользовательской среде, где все данные хранятся в одной базе данных?
Должен ли я указать параметры сортировки в строке запроса (т. Е. SELECT * FROM Members ORDER By Name Collate (Chinese))?Существуют ли проблемы с производительностью при динамической передаче параметров сортировки, особенно если индекс столбца отсортирован на одном конкретном языке?
Или было бы лучше иметь базу данных для каждого языка и определять во время выполнения, какую строку подключения использовать?
Кроме того, как лучше обрабатывать полнотекстовый индекс?Я полагаю, что он может индексировать только на одном языке, и вы можете указать только один индекс для таблицы.
Есть еще что-то, что можно рассмотреть?
Спасибо!