全球化数据库ASP.NET MVC
我希望在这里有一些想法,我们已经全球化了我们网站上的所有静态内容,没有问题,但现在我们已经到了网站用户可以输入的数据库内容。例如,用户可以创建一个包含问题和答案的调查,这需要全球化,下面是我的想法和问题: 解决方案-针对特定区域性的单独表格,例如,我们有一个带有名称字段的全球化数据库ASP.NET MVC,asp.net,sql-server,asp.net-mvc,c#-4.0,globalization,Asp.net,Sql Server,Asp.net Mvc,C# 4.0,Globalization,我希望在这里有一些想法,我们已经全球化了我们网站上的所有静态内容,没有问题,但现在我们已经到了网站用户可以输入的数据库内容。例如,用户可以创建一个包含问题和答案的调查,这需要全球化,下面是我的想法和问题: 解决方案-针对特定区域性的单独表格,例如,我们有一个带有名称字段的调查表格,我们将该名称字段移动到一个调查区域性表格,该表格允许针对调查添加我们想要支持的每个区域性的多个名称字段。必须对调查问题和调查回答表执行此操作。(这似乎是在现场进行的) 问题-这将创建许多额外的表,每个表一个,允许用户输
调查
表格,我们将该名称字段移动到一个调查区域性
表格,该表格允许针对调查添加我们想要支持的每个区域性的多个名称字段。必须对调查问题
和调查回答
表执行此操作。(这似乎是在现场进行的)
问题-这将创建许多额外的表,每个表一个,允许用户输入其他用户可见的文本。还将创建一个非常复杂的前端,允许用户输入问题,然后选择输入不同文化的问题。如果他们只翻译了文化调查的一半,也会导致问题
我的问题是:这是最好的方法吗?这是人们通常的做法吗?如果不是,通常推荐的做法是什么
任何反馈或想法都将不胜感激,因为我正在兜圈子
非常感谢继续使用您原来的表格。添加大量表格肯定是不正确的。噩梦般的维持和一般的错误 在相关表中添加名为
Locale
的列(字段)。它将包含例如:en-US、fr-fr、he-IL等
然后在代码中,查询此字段并决定如何呈现文本或将文本路由到何处。插入/更新也一样
例如,您可以:
- 查询使用给定语言的所有问题
- 获取所有可用语言的给定问题
- 将您所有的数据以您想要的每种语言保存在完全相同的表和列结构中
等等。我处理这个问题的经验很少,但我处理这个问题的方法是在现有表中添加一个“语言”列。这可能导致以下情况:
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.
(所有这些都是针对您的需求填写的)
这样你就有了:
- 调查清单
- 调查使用的语言列表(带有打开/关闭或准备就绪/仍在写入的标志)
- 每种语言的问题列表
- 支持的所有语言的列表