SQL数据库有两种语言

时间:2014-02-20 14:50:52

标签: android sql database

我不是SQL和数据库方面的专家。

我正在为界面和内容本身创建一个具有多语言功能的Android应用程序。

我的问题是内容语言:有没有办法从数据库中检索只包含一种语言(英语)的数据,比如将内容翻译成其他语言选项?

因为我认为在数据库中存储这两种语言效率不高。

提前感谢,

1 个答案:

答案 0 :(得分:1)

属于客户端应用程序的文本通常与该应用程序一起存储,因此您不必从数据库中以适当的语言加载“确定”和“取消”以显示某些按钮。 (但是如果你愿意,你当然可以将它存储在数据库中。)

另一方面,内容数据通常存储在数据库中。将部分数据存储在数据库中并将其中的一部分存储在其他地方并没有多大意义。如果将产品存储在数据库中,则将所需的文本存储在其中。它属于那里。至于访问数据,这并不慢,因为您不会检索所有语言的文本,而只能检索所需的语言。

这是典型的表格设计:

create table product
(
  id number(10),
  buying_price number(6,2),
  selling_price number(6,2),
  id_vat number(1),
  ...
);

create table product_name
(
  id_product number(10),
  language_iso varchar(2), -- 'en', 'de', 'fr', ... or chose another code
  text varchar(100)
);

create table product_description
(
  id_product number(10),
  language_iso varchar(2),
  text varchar(2000)
);

您还可以决定更通用的设计:

create table products
(
  id number(10),
  tranlation_number number(10),
  buying_price number(6,2),
  selling_price number(6,2),
  id_vat number(1),
  ...
);

create table translations
(
  tranlation_number number(10),
  content_name varchar2(30), -- 'PRODUCT_NAME', 'PRODUCT_DESCRIPTION', ...
  language_iso varchar(2), -- 'en', 'de', 'fr', ... or chose another code
  text varchar(4000)
);

还有更多可能性。无论您选择哪种方式,访问数据只是意味着语言的连接和常量。根本没有性能问题。而数据就属于它。