Я разрабатываю базу данных для перевода нескольких языков. Отдельное слово может иметь более одного слова на другом языке (например, синонимы слова).Многоязычный перевод
Например, слово a (in язык1) -> слово b & c (на языке 2). Оба правильные. Мне нужно сохранить все слова в базе данных. Я исследовал ann found Schema for a multilanguage database.
Но проблема в том, что я столкнулся с множеством картографических данных в моих словах. Я также упомянул Good database and structure to store synonyms. В настоящее время это мой дизайн базы данных
CREATE TABLE Language1 (
Word_number int,
Word int,
other char(10)
)
CREATE TABLE Language2 (
Word_number int,
Word int
other char(10)
)
CREATE TABLE Language3 (
Word_number int,
Word int,
other char(10)
)
CREATE TABLE Linkwords (
Language1_Word_number int,
Language2_Word_number int,
Language3_Word_number int
)
Хотя язык таблица выглядит аккуратно. Таблица ссылок беспорядочна.
Например, если language3 имеет 3 слова для того же слова в языке 1 & 2 записей в таблице выглядит как
1 1 1,1 1 2, 1 1 3,...
Может кто-нибудь пожалуйста, предложить лучший дизайн?
Спасибо за ваш ответ. Я не уверен, как ваш проект базы данных решает проблему многих и многих отношений в моем вопросе. Например, у меня есть другое слово для красного цвета на итальянском языке: «xyz». Как я буду вводить это в текущую таблицу «langwords». Строка типа 1,2, xyz не будет удовлетворять первичному значению ключа. Не могли бы вы помочь мне в этом вопросе – user987743
@ user987743: если имеется более одного перевода, соответствующего исходному слову, вам нужно будет добавить другое ключевое поле в таблицу «langwords» (здесь называется «уровень»). Таким образом, вы могли бы использовать «langwords» кортеж (1,2,1, «aldo») и (1,2,2, «rosso»). Я всегда думал, что «альдо» по-итальянски означает «красный» на английском, но Google Translate говорит, что нет. –