Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 17.06.2019, 19:56   #1
Druid8
 
Регистрация: 17.06.2019
Сообщений: 3
По умолчанию 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, 10:13   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 4,943
По умолчанию

Цитата:
Таблица 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 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как лучше реализовать? DeeDee Общие вопросы Delphi 0 13.05.2015 17:50
Как лучше реализовать vik_orel Общие вопросы .NET 4 28.02.2015 01: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 16:32