Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2011, 11:42   #1
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию БД MS SQL Локализация

Итак, проблема следующая
есть полностью уже заполненная БД, на русском языке
Мы переводим приложение на английский язык
Из этого вытекает вопрос - что делать с локализацией БД под английский язык?
Возможные варианты:
1)скопировать БД и заполнить все на английском
2)Разбить БД на подБД с пользователями и на подБД с данными, переписав полностью серверную часть
3)вставить в БД таблицы для английского языка

мне кажется, наиболее удобным способом для расширяемости будет разбивка на подБД

Просто далее допустим потребуется перевести БД на французский и немецкий языки, и намного проще будет добавить небольшие БД с локализацией под данные языки
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 06.10.2011, 11:53   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Термин подбазы мне не понятен. Наверно имеется ввиду наличие нескольких идентичных по структуре БД для разных языков в одном SQL сервере? Наверно тоже так бы сделал. Хотя если таблиц не много можно было бы для каждого языка свой комплект таблиц поддерживать в одной БД. С точки зрения программы трудозатраты к привязке к разным базам или разным таблицам практически одинаковы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.10.2011, 19:11   #3
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Термин подбазы мне не понятен. Наверно имеется ввиду наличие нескольких идентичных по структуре БД для разных языков в одном SQL сервере?
да, именно

объем количества данных для локализации довольно-таки немаленький
встает вопрос о синхронизации, когда, допустим, надо добавить некую строку во все подБД сразу, это получается надо делать ночью, когда никто с БД не работает
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 06.10.2011, 19:27   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Немножко подумал, лучше наверно в одной базе таблицы держать для разных языков. Конектиться тогда только к одной базе. И с обновлением в нормальном режиме не вижу проблем. Запустил явно транзакцию, обновил (вставил, удалил) строку во всех таблицах, завершил транзакцию. Т.е. обновляются сразу все или ни одной. Вот и вся синхронизация. Вы же и в программе при этом должны учесть, что обновление разно-язычное. И ни каких ночей
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.10.2011, 19:49   #5
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

а если будем переводить еще на какие-либо языки, это же будет множество таблиц, их сейчас около 30, в нелокализованной, значит вместе с еще одним языком будет уже 60, далее 90 и тд
а что Вы думаете насчет добавить в таблицу поле для каждого языка?
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 06.10.2011, 21:11   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Это тоже имеет право на жизнь. Многое зависит от того, как потом ПО использует эти текстовки из базы данных. Можно всю запись тянуть, можно отдельные поля. Всю запись - чем больше полей, тем больше ресурсов кушается. Отдельные поля в зависимости от языка - доп.код в ПО. В общем-то все три варианта имеют право на жизнь, вам решать. Даже с отдельными базами можно не ночью делать, а днем, используя службу координатор распределенных транзакций для синхронной записи в базы. Плохо, что много коннектов. ИМХО - добавлять поля в каждую из 30 таблиц более трудоемко, чем добавление новых 30 таблиц. Хотя в ПО наверно без разницы - в любом случае использовать таблицу поддерживаемых языков и от этого плясать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Локализация... maLoy*508 Свободное общение 3 22.09.2011 21:29
Локализация программы Михаил Юрьевич Общие вопросы Delphi 0 25.08.2011 23:04
Локализация программы через INI, локализация диалоговых сообщений? Человек_Борща Общие вопросы Delphi 1 13.08.2010 13:57
Локализация программы Михаил Юрьевич Общие вопросы Delphi 2 30.12.2009 20:23
Локализация програмы neo_m Помощь студентам 4 10.03.2008 15:24