One Row Per Language

In this structure, each string value has a separate row with a code column that identifies the language.

Data is filtered to return only the row that contains the required language data. Normally, multilingual data is stored in a separate table to avoid duplicating non-descriptive or monolingual data.

In the samples databases, the data table contains the primary key and monolingual data, such as date information. The multilingual table contains data and a compound key composed of the foreign key and language code. For example, the PRODUCT_NAME_LOOKUP table contains the PRODUCT_NUMBER, PRODUCT_LANGUAGE, and PRODUCT_NAME columns, where PRODUCT_NUMBER and PRODUCT LANGUAGE form the primary key. Each of the localized items is expressed in 23 rows, one for each language.

The following foreign key table contains one or more localized items.

Primary key table

Foreign key table

Database

PRODUCT

PRODUCT_NAME _LOOKUP

GOSALES

SLS PRODUCT DIM

SLS_PRODUCT _LOOKUP

GOSALESDW

The samples databases use ISO language codes to identify each row of data.