多语言翻译
Multi- Language translation
我正在为多语言翻译器设计一个数据库。一个特定的词在另一种语言中可以有多个词(比如一个词的同义词)。
例如,单词 a(语言 1)-> 单词 b 和 c(语言 2)。两者都是正确的。
我需要将所有单词存储在数据库中。我研究了安发现 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
)
虽然语言 tables 看起来很整洁。 link table 乱七八糟。
例如,如果语言 3 在 table 中的语言 1 和 2 中的同一个词有 3 个词,看起来像
1 1 1,1 1 2, 1 1 3,...
谁能提出更好的设计建议?
我的设计方式如下:
Words
id // primary key
word // the word itself
Languages
id // primary key
langname
LangWords
word_id // joint primary key
lang_id // joint primary key
langword
语言 table 会有这样的条目
+----+-------------+
| id | langname |
+----+-------------+
| 1 | French |
| 2 | Italian |
| 3 | German |
+----+-------------+
假设我们要存储单词'red'。在table'words',id=1,word='red'.
'langwords' table
中将有三个条目
+---------+---------+-----------------+
| word_id | lang_id | langword |
+---------+---------+-----------------+
| 1 | 1 | rouge |
| 1 | 2 | aldo |
| 1 | 3 | rot |
+---------+---------+-----------------+
'langwords'中的记录数应该是单词数乘以语言数。上述结构允许轻松访问给定语言中的所有单词或每种语言中的相同单词。
我正在为多语言翻译器设计一个数据库。一个特定的词在另一种语言中可以有多个词(比如一个词的同义词)。
例如,单词 a(语言 1)-> 单词 b 和 c(语言 2)。两者都是正确的。 我需要将所有单词存储在数据库中。我研究了安发现 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
)
虽然语言 tables 看起来很整洁。 link table 乱七八糟。
例如,如果语言 3 在 table 中的语言 1 和 2 中的同一个词有 3 个词,看起来像
1 1 1,1 1 2, 1 1 3,...
谁能提出更好的设计建议?
我的设计方式如下:
Words
id // primary key
word // the word itself
Languages
id // primary key
langname
LangWords
word_id // joint primary key
lang_id // joint primary key
langword
语言 table 会有这样的条目
+----+-------------+
| id | langname |
+----+-------------+
| 1 | French |
| 2 | Italian |
| 3 | German |
+----+-------------+
假设我们要存储单词'red'。在table'words',id=1,word='red'.
'langwords' table
中将有三个条目+---------+---------+-----------------+
| word_id | lang_id | langword |
+---------+---------+-----------------+
| 1 | 1 | rouge |
| 1 | 2 | aldo |
| 1 | 3 | rot |
+---------+---------+-----------------+
'langwords'中的记录数应该是单词数乘以语言数。上述结构允许轻松访问给定语言中的所有单词或每种语言中的相同单词。