2012-02-23 4 views
1

여기에 몇 가지 의견을 주시면 감사하겠습니다. 사이트의 모든 정적 컨텐츠를 문제없이 세계화했으나 이제는 사이트 사용자가 입력 할 수있는 데이터베이스 컨텐츠가되었습니다. 예를 들어 사용자는 질문과 답변이 포함 된 설문지를 만들 수 있습니다.이 질문은 다음과 같이 글로벌화해야합니다.세계화 데이터베이스 ASP.NET MVC

해결책 - 특정 문화권에 대한 표를 분리합니다 우리는 이름 필드가있는 Survey 테이블을 가지고 있는데, 그 이름 필드를 SurveyCultures 테이블로 옮깁니다. 지원하는 각 문화권의 여러 이름 필드를 설문 조사에 추가 할 수 있습니다. 이는 SurveyQuestionsSurveyAnswers 테이블에 대해 수행해야합니다.

문제 (이는 MVC storefront example에서 수행 된 것으로 보인다 방법입니다) -이 추가 테이블의 많은 사용자가 다른 사용자에게 표시되는 텍스트를 입력 할 수있는 모든 테이블을 생성합니다. 또한 사용자가 질문을 입력 할 수 있도록 매우 복잡한 프런트 엔드를 작성한 다음 다른 문화권에 대한 질문을 입력하도록 선택합니다. 또한 문화에 대한 조사를 절반 만 번역하면 문제가 발생합니다.

내 질문은 : 이것이 최선의 방법인가? 사람들이 일반적으로 그렇게 하는가? 그렇지 않은 경우 일반적으로 수행되는 권장 관행은 무엇인가?

모든 서클에 참여할 때 어떤 피드백이나 생각이라도 대단히 감사하겠습니다.

많은 감사합니다.

답변

0

나는이 문제를 다루는 약간의 경험을했습니다,하지만 난 그것을 접근하는 방법과 기존 테이블에 "언어"열을 추가하는 것입니다. 이로 인해 다음과 같이 될 수 있습니다.

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. 

(모든 것 등채우기에 대한 당신이이) 요구 사항에 당신이이 방법 특정 무엇을해야됩니다

  • 설문 조사는 온/오프에 대한 플래그 (에 조사
  • 목록 언어 목록, 또는/준비는 여전히 각 언어
  • 그것이 나에게 가장 컨트롤을 내 주면서 내가이 라인을 따라 매우 뭔가했다
+0

지원하는 모든 언어 목록에서 질문의

  • 목록)에 기록된다. 많은 감사합니다. – user351711

  • 2

    원본 테이블을 고집하십시오. 확실히 많은 테이블을 추가하는 것은 정확하지 않습니다. 유지하고 일반적으로 잘못 악몽.

    해당 테이블에 Locale이라는 열 (필드)을 추가하십시오. 예 : en-US, fr-FR, he-IL 등을 포함합니다.

    그런 다음 코드에서이 필드를 쿼리하고 텍스트를 렌더링하는 방법 또는 라우팅 할 위치를 결정합니다. 삽입/업데이트와 동일합니다. 예를 들어, 당신은 할 수

    :

    • 쿼리 주어진 언어에있는 모든 질문입니다.
    • 모든 언어가 사용 가능합니다.
    • 갖고있는 모든 데이터를 원하는 모든 언어로 동일한 테이블 및 열 구조로 저장하십시오.