Глобализация базы данных ASP.NET MVC - PullRequest
1 голос
/ 23 февраля 2012

Буду признателен за некоторые мысли, мы без проблем глобализировали весь статический контент на нашем сайте, но теперь мы подошли к контенту базы данных, в который могут войти пользователи сайта.Например, пользователь может создать опрос с вопросами и ответами, и его необходимо глобализировать, а ниже описан способ, которым я думал об этом, и проблемы:

Решение - Отдельные таблицыдля определенных культур, например, у нас есть таблица Survey с полем имени, мы перемещаем это поле имени в таблицу SurveyCultures, которая позволяет добавить несколько полей имени для каждой культуры, которую мы хотим поддержать, к опросу.Это должно быть сделано для таблиц SurveyQuestions и SurveyAnswers.(это похоже на то, как это было сделано в примере MVC )

Проблемы - это создаст много дополнительных таблиц, по одной для каждой таблицыэто позволяет пользователям вводить текст, который виден другим пользователям.Также создаст очень сложный интерфейс, позволяющий пользователю ввести вопрос, а затем выбрать, чтобы ввести вопрос для другой культуры.Также приводит к проблемам, если они только наполовину переводят опрос для культуры.

Мой вопрос: это лучший путь, так ли это обычно делают люди, и если нет, то какова рекомендуемая практика дляэто то, что обычно предпринимают?

Любая обратная связь или мысли будут очень благодарны, когда я буду ходить кругами.

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

Придерживайтесь своих оригинальных столов. Определенно неправильно добавлять много таблиц. Кошмар, чтобы поддерживать и вообще неправильно.

В соответствующих таблицах добавить столбец (поле) с именем Locale. Он будет содержать, например: en-US, FR-FR, he-IL и т. Д.

Затем в своем коде сделайте запрос в этом поле и решите, как отобразить ваш текст или куда его направить. То же самое для вставок / обновлений.

Вы можете, например:

  • Запросите все вопросы на данном языке.
  • Получить заданный вопрос на всех доступных языках.
  • Сохраните все ваши данные на любом языке, который вам нужен, в той же структуре таблиц и столбцов.

и т.д.

0 голосов
/ 23 февраля 2012

У меня мало опыта в решении этой проблемы, но я бы решил добавить столбец «Язык» в существующие таблицы.Это может привести к чему-то вроде:

Table: Survey
Columns: Unique identifier, date created, owner, etc.

Table: SurveyTitle
Columns: Language, Title, IsReleased (flag indicating whether survey in this language is ready for use), etc.

Table: SurveyQuestion
Columns: Language, QuestionNumber, QuestiontText etc.

Table: Language (this is a lookup table, used for foreign keys on all those Language columns)
Columns: Language (Id), Description, etc.

(Все эти и т. Д. Заполнены для того, что вам нужно, что соответствует вашим требованиям) Таким образом, у вас есть:

  • Список опросов
  • Список языков, на которых проводится опрос (с флагами для включения / выключения или готовности / все еще пишется)
  • Список вопросов на каждом языке
  • Список всех поддерживаемых языков
...