我正在寻找将DB Oracle作为多语言数据库的解决方案,我们的必要性是这样的,我们是一个数据库,例如某些业务操作是通过存储过程执行的,我们将任何消息存储在varchar列中或者当它收到错误时(如业务逻辑错误),我们常常向外部抛出一个引发应用程序错误的消息。 现在我们必须用三种不同的语言存储这些消息,并用三种不同的语言抛出这些消息。
在我寻找解决方案时,我们将不胜感激任何建议。
感谢。
答案 0 :(得分:0)
这方面有很多方法。
我会列出最受欢迎的内容:
1)重复表格。即创建表:customer_en,customer_fr,customer_ge等
2)为每个实体表创建字典。即,您将拥有带有英文文本的表Customer(id,name,short_name,description)。表Customer_Voc(id,customer_id,short_name,description,languages)。 Customer_Voc将在X时间大于Customer表。其中X是支持的非英语语言的数量。
3)使用表中与语言相关的列。在我们的情况下: 客户(Id,short_name_en,short_name_fr,short_name_de,...,description_en,description_fr,description_de)
4)使用常用词汇。 在这种情况下,您将有另外两个表:
短语 - ID,eng_text phrase_translation - ID,phrase_id,translated_text,language
每个文本字段都应该用短语替换fk.ID
答案 1 :(得分:0)
还有必要检查NLS字符集是否包含您希望在表中具有的所有消息内容。从字符子集迁移到超集很容易,但很难从另一个方面迁移。
Oracle网站上有一个description of a Multilingual Database Scenario,旧版Oracle可以使用相同的详细信息。