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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как лучше реализовать? 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


16:03.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru