Сводные таблицы для многоязычности

Модераторы: kdv, CyberMax

Ответить
Bekass
Сообщения: 3
Зарегистрирован: 04 июн 2008, 15:51

Сводные таблицы для многоязычности

Сообщение Bekass » 04 июн 2008, 16:04

Есть задача многоязычной БД.
Т.Е. к примеру есть таблица стран country
в ней поля id_country, name_country и т.д.
Так же нужна точно такая же таблица, но где name_country будет содержать данные на другом языке.
на индекс записи id_country ссылаются другие таблицы, в зависимости от параметры выбранного языка необходимо выберать соответствующую запись с таблицы country name_country.
Вот как бы ЭТО все проше организовать ?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 04 июн 2008, 16:07

юникод?

Bekass
Сообщения: 3
Зарегистрирован: 04 июн 2008, 15:51

Сообщение Bekass » 04 июн 2008, 17:02

Да, база в юникоде, но вопрос в том как организовать связи

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 04 июн 2008, 18:09

Объясните плиз старому пню механизм влияния кодовой страницы литералов на способ организации связей, а то, чую, проспал что-то в этой жизни :roll:

Bekass
Сообщения: 3
Зарегистрирован: 04 июн 2008, 15:51

Сообщение Bekass » 04 июн 2008, 18:18

у меня будет несколько таблиц одинаковых но с разными данными в зависимости от языка , у них будет разный счетчик, вопрос в том как прикрутить уникальный идентификатор указывающий на идентификаторы записей в этих таблицах

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 04 июн 2008, 18:43

Мил человек, ну это же азбука, отношения 1:n и m:n

Код: Выделить всё

Create Table Languages
(ID   Int Not Null,
Constraint Languages_PK Primary Key (ID))

Create Table Language_Names
(ID_Lang  Int Not Null,
 ID_On_Lang  Int Not Null,
 Name VarChar (50),
Constraint Language_Names_PK Primary Key (ID_Lang, ID_On_Lang),
Constraint Language_Names_FKLang Foreign Key (ID_Lang)
 References Languages,
Constraint Language_Names_FKONLang Foreign Key (ID_ON_Lang)
 References Languages)

Create Table Countries
(ID  Int Not Null
//список атрибутов и т.д. которые не символьные
Constraint Countries_PK Primary Key (ID))

Create Table Country_Names
(ID_Country  Int Not Null,
 ID_On_Lang  Int Not Null,
 Name VarChar (50),
//атрибуты и т.д. которые символьные
Constraint Country_Names_PK Primary Key (ID_Country, ID_On_Lang),
Constraint Country_Names_FKCountry Foreign Key (ID_Country)
 References Countries,
Constraint Language_Names_FKONLang Foreign Key (ID_ON_Lang)
 References Languages)
ссылаться на справочные таблицы с литералами, естественно, по двухсегментному ключу. Не нравится по двухсегментному - навесь на них свои ID в качестве PK и этот полуестественный сделай Unique. Или наоборот, дело вкуса.

Ответить