powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Мультиязычность данных в БД
25 сообщений из 55, страница 1 из 3
Мультиязычность данных в БД
    #38376950
Gorden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Помогите плз. подобрать решение для мультиязычного проекта с возможностью безболезненно добавлять языки. Переводы нужны будут для различных текстовых данных, хранящихся в таблицах бд, интерфейса приложения и сайта, шаблонов различных документов итд. Для себя пока вижу решение, где все переводы хранятся в одной таблице:

Таблица translate
-----------------------------
translate_id - идентификатор
group - группа, к которой принадлежит переведеный текст, например такие-то документы, надписи элементов такой то формы, статьи, идентификаторы страниц сайта, текстовые данные таблиц бд (можно с группировкой по таблицам). Т.е при необходимости можно правильно сгруппировать данные по некоторым критериям и дернуть переводы например сразу для целой web страницы.
lang_en - английский текст
lang_ru - русский текст
lang_ch - китайский текст
... итд
-----------------------------

Для текстовых данных в таблицах бд требующих перевода, просто указываем нужную ссылку на translate_id из таблицы переводов, например

Таблица categories
-------------------------------
category_id
category_name - здесь ссылка на нужный translate_id из таблицы
-------------------------------

Плюсом такого решения вижу возможность легко плодить языки добавлением нового столбца в таблицу translate, возможность поиска текстовых (полнотекстовых) данных по этим разноязычным столбцам с использованием своего collation для каждого такого столбца.

Из минусов - при вытаскивании переводов текстовых данных таблиц, потребуется много join-ов.

Помогите пожалуйста доработать это решение, или посоветуйте другие.

Спасибо!
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38376956
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GordenПлюсом такого решения вижу возможность легко плодить языки добавлением нового
столбца в таблицу translate
Пока не наткнёшься на ограничение по количеству столбцов или суммарного размера записи.
Разворачивай. Каждому переводу - отдельную запись.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38376973
Gorden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovКаждому переводу - отдельную запись.


Так?

Таблица translate
--------------------------
translate_id
lang_id
text
--------------------------

Не совсем тогда понял, как связывать строки переводов из такой таблицы с полями других таблиц. Может я неправильно объяснил задачу. Есть например таблица товаров (или категорий товаров, как я привел выше) где нужно хранить название товара на нескольких языках. Для этого я связываю поле "название товара" из таблицы товаров со строкой в таблице переводов, где хранятся все необходимые переводы, и беру тот который нужен.

А если у каждого перевода будет отдельная запись, тогда и ссылаться можно только на один перевод. Или использовать промежуточную таблицу.

Поясните пожалуйста. Спасибо.
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38376979
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gorden,

Поменяйте направление внешнего ключа. Это локализация должна ссылаться на товар, а не наоборот. Ибо товар первичен.

Правда, если вы будете делать одну таблицу для локализации вообще всех объектов БД, то тогда придется обходиться без FK, а целостность проверять в хранимых процедурах.
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377020
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gorden все переводы хранятся в одной таблицеЗачем лишать себя ссылочной целостности

Создайте копию таблицы с переводами
было
Код: sql
1.
2.
3.
4.
5.
6.
7.
create table products 
(
product_id int primary key,
product_name varchar,
other_fields data
....
)


стало

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create table langs (lang_id int primary key, lang_name varchar)

create table products_trans
(
product_id references products,
lang_id references langs,
product_name
primary key (product_id,lang_id)
)



запрос

Код: sql
1.
2.
3.
4.
select p.product_id, other_fields,
 isnull(select product_name from products_trans t where t.product_id=p.product_id and lang_id=:langid)
   ,p.product_name)
from products p


То есть поле product_name в таблице product можно оставить, это будет значение по умолчанию.

и так для каждой таблице нуждающейся в переводе.
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377029
Gorden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ennor TiegaelПоменяйте направление внешнего ключа. и
SERG1257Создайте копию таблицы с переводами
Так то оно так, логично, но тогда на каждый объект бд, где требуется перевод значений полей придется делать свою таблицу переводов. Если например таблиц больше сотни, то все это администрировать довольно проблематично. И кроме этого нужно еще хранить переводы интерфейса, шаблонов документов, статей итд. И еще чтобы можно было отбирать переведенные тексты группами (например группу переводов надписей для формы, группу текстов для web страницы).
Ennor TiegaelПравда, если вы будете делать одну таблицу для локализации вообще всех объектов БД, то тогда придется обходиться без FK, а целостность проверять в хранимых процедурах.
Вот и хотелось бы одну таблицу, но только с целостностью (может пусть и в обратном направлении FK), быстрыми выборками и удобную для работы редакторам-переводчикам.

Вобщем ломаю голову.
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377042
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gorden то все это администрировать довольно проблематично.Придерживайтесь соглашений о наименованиях и никаких проблем.
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377390
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gorden...
Вот и хотелось бы одну таблицу, но только с целостностью (может пусть и в обратном направлении FK), быстрыми выборками и удобную для работы редакторам-переводчикам.
В общем ломаю голову.
Для этого нужно использовать СУБД, которые поддерживают связи между объектами. Тогда и таблица будет одна и о целостности не нужно беспокоиться.
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377423
Gorden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БредятинаДля этого нужно использовать СУБД, которые поддерживают связи между объектами. Тогда и таблица будет одна и о целостности не нужно беспокоиться.
Не совсем вас понимаю. Можно пож. пример СУБД и того как будут строиться связи.
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377437
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GordenПереводы нужны будут для различных текстовых данных, хранящихся в таблицах бд, интерфейса приложения и сайта, шаблонов различных документов итд.
шаблонов различных документов - иметь шаблоны на всех языках
интерфейса приложения - настраивать на основе словарей, а если интерфейс генерируется автоматически, то несколько метаописаний
данных, хранящихся в таблицах - все в одно поле через разделитель - доступ через функцию
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377479
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GordenНе совсем вас понимаю.

Ну вот, к примеру, Человек его совсем понял:

Заведующий кафедрой теоретическо.... Бредятина
вы несёте совершеннейшую чушь - просто набор слов, поток сознания, наркоманский бред .....
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377526
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GordenБредятинаДля этого нужно использовать СУБД, которые поддерживают связи между объектами. Тогда и таблица будет одна и о целостности не нужно беспокоиться.
Не совсем вас понимаю. Можно пож. пример СУБД и того как будут строиться связи.
vadiminfo дал подробное разъяснение про связи))
От себя добавлю - Вам нужно изучать теорию БД. Теория реляционных БД, с которой Вы, вероятно, немного знакомы, не позволит решить ни одну прикладную задачу, а не только эту))
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377556
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятинадал подробное разъяснение про связи))
Но автор-то просил название СУБД...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377681
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovБредятинадал подробное разъяснение про связи))
Но автор-то просил название СУБД...

Но vadimifo-то дал разъяснение и про СУБД, конечно же)) Замечу только (возвращаясь к началу темы), что ни одна СУБД принципиально не накладывает (и не может накладывать) ограничений на число "колонок" в "таблице" или на длину "записи". Вероятно, речь идет о СХОД, а не о СУБД. То же самое и про связи. Их поддерживает любая СУБД.
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377747
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаИх поддерживает любая СУБД.
Назови три самых известных.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377791
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovБредятинаИх поддерживает любая СУБД.
Назови три самых известных.

Почему три, их очень много - Оля, Аня, Класс, X.Magic и т.п. Как-будто Вы не знаете. Все они очень хорошо известны специалистам именно по СУБД. А не по СХОД))
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38377864
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятинаих очень много - Оля, Аня, Класс, X.Magic и т.п.
Ссылочки откуда их можно скачать, пожалуйста. Боюсь, что гугль на слово "Оля" найдёт всё
что угодно кроме СУБД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38378140
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovБоюсь, что гугль на слово "Оля" найдёт всё
что угодно кроме СУБД.

А чего бояться? ЧАЛ называет СУБД "всё что угодно кроме СУБД". А как иначе иму расчистить дорогу для МУМПСа, если оный и в толстых книгах не считают за СУБД?
А так Ораклы, Скули тоже не СУБД и типа можно МУМПСа подбрасывать себе на здоровье.

Впрочем, в четверг на Новом Арбате видел книгу: СУБД МУМПС.
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38378143
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovСсылочки откуда их можно скачать, пожалуйста. Боюсь, что гугль на слово "Оля" найдёт всё
что угодно кроме СУБД.

Что значит скачать??? СУБД начали создаваться 30 лет назад (чуть позже, чем СХОД). Одни приходят на смену другим. Но, я не знаю ни одного разработчика СУБД, который бы был заинтересован не в применении для создания приложений, а в распространении)) Действительно, Вы правы - Вы на слово "Оля" найдете все, что угодно, кроме СУБД. Но, даже самые первые СУБД, разработанные до "гугля", все-таки, "гуглятся" специалистами в области СУБД))
http://supsov.narod.ru/4_91/13.htm
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38378151
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoDimitry SibiryakovБоюсь, что гугль на слово "Оля" найдёт всё
что угодно кроме СУБД.

А чего бояться? ЧАЛ называет СУБД "всё что угодно кроме СУБД". А как иначе иму расчистить дорогу для МУМПСа, если оный и в толстых книгах не считают за СУБД?
А так Ораклы, Скули тоже не СУБД и типа можно МУМПСа подбрасывать себе на здоровье.

Впрочем, в четверг на Новом Арбате видел книгу: СУБД МУМПС.
MUMPS не СУБД. А среда создания СУБД. Это факт))) Разумеется, было (и будет) много попыток создать СУБД в среде той или иной "реляционной" СХОД. Это мы здесь много раз подробно обсуждали (неизбежность архитектуры "модель верхнего уровня+маппинг по всем трем аспектам+РМД").
"Любите и чтите мое, как свое. Тогда вы мне судья" (С)
Я, люблю, чту и всесторонне изучаю СХОД, в том числе, реляционные СХОД. Поэтому, могу быть судьей)) А Вы не можете. Вам остается только хамить))
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38378191
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gorden,

возможно, на свалке еще можно найти СМ-4 для Оли. Хотя, может быть, лучше найти какую-нибудь реальную Олю и забить вместе с ней на СУБД вообще, чем "скачивать" СУБД рекомендуемые ЧАЛом.
Он пытается Вам подросить иерархические СУБД, а под видом каких-то не удавшиеся направления генераторов клиентской части приложений. В конце конце были более удачные реляционного. Кларион в досе. Да и тот же Аксцеес много больше позволяет налабать без кодирования.
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38378265
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoGorden,

возможно, на свалке еще можно найти СМ-4 для Оли. Хотя, может быть, лучше найти какую-нибудь реальную Олю и забить вместе с ней на СУБД вообще, чем "скачивать" СУБД рекомендуемые ЧАЛом.
Он пытается Вам подросить иерархические СУБД, а под видом каких-то не удавшиеся направления генераторов клиентской части приложений. В конце конце были более удачные реляционного. Кларион в досе. Да и тот же Аксцеес много больше позволяет налабать без кодирования.
MUMPS не СУБД. А среда создания СУБД. Это факт))) Разумеется, было (и будет) много попыток создать СУБД в среде той или иной "реляционной" СХОД. Это мы здесь много раз подробно обсуждали (неизбежность архитектуры "модель верхнего уровня+маппинг по всем трем аспектам+РМД").
"Любите и чтите мое, как свое. Тогда вы мне судья" (С)
Я, люблю, чту и всесторонне изучаю СХОД, в том числе, реляционные СХОД. Поэтому, могу быть судьей)) А Вы не можете. Вам остается только хамить))
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38378289
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gorden,

ЧАЛа заклинило: он включил повторялку в надежде побросить Вам вместо СУБД какой-то там устаревший генератор клиентских приложений для СМ-4, хотя возможно, к нему и прилогается фотография некоей Оли.
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38378300
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoGorden,

ЧАЛа заклинило: он включил повторялку в надежде побросить Вам вместо СУБД какой-то там устаревший генератор клиентских приложений для СМ-4, хотя возможно, к нему и прилогается фотография некоей Оли.
Это Вас заклинило на хамстве)) И не любви к истории СУБД))
MUMPS не СУБД. А среда создания СУБД. Это факт))) Разумеется, было (и будет) много попыток создать СУБД в среде той или иной "реляционной" СХОД. Это мы здесь много раз подробно обсуждали (неизбежность архитектуры "модель верхнего уровня+маппинг по всем трем аспектам+РМД").
"Любите и чтите мое, как свое. Тогда вы мне судья" (С)
Я, люблю, чту и всесторонне изучаю СХОД, в том числе, реляционные СХОД. Поэтому, могу быть судьей)) А Вы не можете. Вам остается только хамить))
...
Рейтинг: 0 / 0
Мультиязычность данных в БД
    #38378477
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чал, дружище, вы должны понимать, что вам не хамят, - это терапевтические сеансы. Вы должны быть благодарны людям, которые не теряют надежды найти в вас приемлемого члена общества. У меня, например, иллюзий нет, пшолнах - это максимум, который вы заслуживаете.

> "Любите и чтите мое, как свое. Тогда вы мне судья" (С)

Чал, дружище, проектирование - наука. Найдите адептов своей религии и проводите время с ними, - это разумная модель поведения.
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Мультиязычность данных в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]