powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / хранение информации на нескольких языках
16 сообщений из 16, страница 1 из 1
хранение информации на нескольких языках
    #35564331
tselofun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер. Возник вопрос как лучше реализовать хранение инфомрации на нескольких языках. Есть персона у котрой в свою очередь есть биография (собственно текст) на трёх языках (en, de, fr). База данных mysql.

1. Первый вариант, одна таблица person:
[person]
Код: plaintext
1.
2.
3.
4.
person_id
person_name
bio_en
bio_de
bio_fr

2. Второй вариант, отдельная таблица для биографий и персон. Поле biography_id в таблице person как бы намекает на связь с таблицей biography:
[biography]
Код: plaintext
1.
2.
3.
biography_id
bio_en
bio_de
bio_fr

[person]
Код: plaintext
1.
2.
person_id
person_name
biography_id

Хотелось бы услышать ваше мнение по поводу наилучшести варианта, в плане удобства, возможно скорости.
Как бы сделали вы?
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35564350
IT-Shaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tselofun

Хотелось бы услышать ваше мнение по поводу наилучшести варианта, в плане удобства, возможно скорости.
Как бы сделали вы?

в плане удобства - это нужно знать как эта информация будет использоваться.
все эти варианты вполне жизнеспособны.

могу предложить еще один вариант:

таблица персоны.

таблица биографии:
текст биографии
язык
ссылка на персону.

такой вариант немного проще в плане организации полнотекстового поиска. искать надо только в одном поле. и нет избыточности полей. если у кого то только на одном языке биография, то будет одна запись.
если Вы напишите как будет эта информация использоваться, то можно будет подобрать подходящую структуру.
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35564354
tselofun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IT-Shaman, музыкальная энциклопедия на нескольких языках, на каждом из которых есть страницы музыкантов и их биогрфаии.

Вот пример, очень похожий:
last.fm/music/The+Beatles (англйиский)
lastfm.de/music/The+Beatles (немецкий)
lastfm.fr/music/The+Beatles (французский)

При этом, на каком нибудь из представленных языков может и не быть биографии. И вы прав
Ну и количество поддерживаемых языков может увеличиться.
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35564355
tselofun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tselofunИ вы прав
И вы правы по поводу поиска, если биография на одном из языков. Сразу на всех языках они не нужны одновременно.
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35564637
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я делал просто и в лоб.

К каждой таблицей с такой информацией добавляется дочерняя с добавлением в PK ещё и языка (соотв. справочник также есть в системе).

Если есть явно выделенный язык, используемый по умолчанию, можно те же поля хранить и в основной
таблице на этом дефолтном языке (во вспомогательной - уже не хранить).
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35564792
alneo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
table Person
(
PersonID
...
)

table Biography
(
BiographyId
lang_Id
BiographyData
...
)

table PersonBiography
(
id
PersonID
BiographyId
)

table Language
(
LanguageId,
LanguageShortName,
...
)
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35564846
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2alneo: т.е., думаете, у нескольких людей может быть одна биография?
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35564858
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alneo
table PersonBiography
(
id
PersonID
BiographyId
)

Это зачем? Чтоб разным людям одну биографию вешать?
Сие проиворечит UML-ной модели, если ее рисовать - кроме отношения композиции между персоной и биографией все остальное будет вызывать недоумение.
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35564870
alneo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как сделать, ведь у одного человека может быть несколько биографий на разных языках.
(в смысле одна биография на нескольких языках и число языков неограничено?, ну типа как в CMS системах)
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35564885
alneo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сори, исправляюсь. вот так нормально?

Biograpрy
(
Id,
UserId,
LanguageId,
BiographyData

)
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35565201
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alneoсори, исправляюсь. вот так нормально?

Biograpрy
(
Id,
UserId,
LanguageId,
BiographyData

)ес
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35566442
tselofun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял. Спасибо.
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35578377
Фотография Dinamo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych2alneo: т.е., думаете, у нескольких людей может быть одна биография?
С течением времени биография имеет свойство изменяться...
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35578698
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dinamo egorych2alneo: т.е., думаете, у нескольких людей может быть одна биография?
С течением времени биография имеет свойство изменяться...... и переходить от человека к человеку, ага
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35580235
Фотография Dinamo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych DinamoС течением времени биография имеет свойство изменяться...... и переходить от человека к человеку, ага
С прошествием времени к биографии могут добавляться новые жизненные моменты и достижения (получение образования, смена места жительства, смена работы и т.п.), соответственно не отраженные в более ранних версиях биографии.
...
Рейтинг: 0 / 0
хранение информации на нескольких языках
    #35580289
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы в постановке задачи где-то увидели слово "версионность"? ткните пальцем, если не затруднит.
З.Ы. кстати, версионность достигается другими средствами, не разрушающими целостность данных
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / хранение информации на нескольких языках
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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