1
我不是一般SQL和數據庫方面的專家。具有兩種語言的SQL數據庫
我正在爲接口和內容本身創建一個具有多種語言功能的android應用程序。
我的問題是針對內容語言的:有沒有什麼辦法從數據庫中檢索只包含一種語言(英語)的數據,如將內容翻譯爲其他語言選項?
因爲我認爲將這兩種語言存儲在數據庫中效率不高。
在此先感謝,
我不是一般SQL和數據庫方面的專家。具有兩種語言的SQL數據庫
我正在爲接口和內容本身創建一個具有多種語言功能的android應用程序。
我的問題是針對內容語言的:有沒有什麼辦法從數據庫中檢索只包含一種語言(英語)的數據,如將內容翻譯爲其他語言選項?
因爲我認爲將這兩種語言存儲在數據庫中效率不高。
在此先感謝,
文本屬於客戶端應用程序通常存儲與應用程序,所以你不必加載「OK」,並從數據庫中的相應的語言「取消」僅顯示一些鈕釦。 (但是,如果需要,您可以將其存儲在數據庫中。)
另一方面,內容數據通常存儲在數據庫中。把它的一部分存儲在數據庫中,而把它的一部分存儲在其他地方是沒有什麼意義的。如果您將產品存儲在您的數據庫中,然後存儲它所需的文本。它屬於那裏。至於訪問數據,這並不慢,因爲你不用所有語言檢索文本,而只用所需的語言。
這裏是一個典型的表設計:
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)
);
有更多的可能性。無論您選擇哪種方式,訪問數據都意味着該語言的連接和常量。性能應該沒有問題。數據就是它所屬的地方。
我想你不需要將它存儲在數據庫中。看看這個:http://developer.android.com/training/basics/supporting-devices/languages.html – Dehumanizer
謝謝你的迴應,我的意思是內容不是接口...例如:在我的數據庫中有一張用英語存儲的產品信息表。當用戶選擇使用應用程序查看信息時,它將顯示例如具有所選語言(不是英語)的產品名稱。 – user3333203
您可以添加一個Lang_Code列(整數),如英語= 0,德語= 1,...並通過Lang_Code檢索數據。 –