Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2019, 18:56   #1
Druid8
 
Регистрация: 17.06.2019
Сообщений: 4
По умолчанию SQLite. Foreign Key. Как лучше реализовать?

SQLite. Foreign Key. Как лучше реализовать?

Всем привет. Нужна помощь опытных.

Есть таблица Classes, в ней будет определенный данные и ГЛАВНОЕ в ней нужен ПЕРЕВОД. То есть можно сделать по самому примитивному варианту, создать колонки "nameRU", "nameEN" и т.д.

Я решил попробовать через SQLite и привязку к другой таблице Localization по Foreign Key.

Таблица Localization примитивная, есть ключ и колонки RU EN ....
То есть это большой список ключей и переводов, а на неё типа ссылаются другие таблицы.

Тут важно учесть что в таблице Classes, есть 4!! колонки которые нужно локализовать. То есть при запросе придется делать 4 JOINT к Localization и получать для каждой из 4 колонок перевод....


Как бы сделали вы? Речь именно про SQLite и про перевод колонок таблицы.
Druid8 вне форума Ответить с цитированием
Старый 18.06.2019, 09:13   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
Таблица Localization примитивная, есть ключ и колонки RU EN ....
сделать три колонки
1. ссылка на главную (на оригинальный текст)
2. код языка RU/EN/...
3. собственно перевод

1-я и есть foreignKey
2-я позволит вводить новые языки не меняя структуру БД и позволить избежать пустоты при ОТСУТСТВИИ переводов на какие-либо языки.
Цитата:
Тут важно учесть что в таблице Classes, есть 4!! колонки которые нужно локализовать
т.е. 4 * кол-во языков.

+ четвертая колонка КОД колонки если какой либо локализации может и не быть.

четыре поля(колонки) для переводов если РАСШИРЕНИЕ исходных колонок(увеличения их числа) не предвидится(я бы не был в этом так уверен) и будут заполнены переводы ВСЕХ исходных колонок, и вариант с КОДОМ колонки есть имеют место быть пропуски. (см. замечание ко второй колонке)

Код:
select classes.*, t1.transl, t2.transl, ...
from classes 
left join translate as t1 on t1.id =classes.id and t1.lang ='EN' and t1.column =1
left join translate as t2 on t1.id =classes.id and t2.lang ='EN' and t2.column =2
....
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как лучше реализовать? DeeDee Общие вопросы Delphi 0 13.05.2015 16:50
Как лучше реализовать vik_orel Общие вопросы .NET 4 28.02.2015 00:32
SQLite foreign key 5nizza77 БД в Delphi 5 11.05.2012 14:21
Как лучше реализовать. Roofslover Visual C++ 0 22.11.2011 21:28
ООП. Как лучше реализовать? Tiam Помощь студентам 9 16.11.2010 15:32