我正在设计用于多语言翻译的数据库。一个特定的单词在另一种语言中可以有多个单词(例如单词的同义词)。
例如,单词a(在语言1中)->单词b和c(在语言2中)。两者都是正确的。我需要将所有单词存储在数据库中。我研究发现Schema适用于多语言数据库。
但是我面临的问题是用我的话说有很多很多的映射。我还提到了用于存储同义词的Good数据库和结构。目前这是我的数据库设计
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在语言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
语言表将具有这样的条目
+----+-------------+
| id | langname |
+----+-------------+
| 1 | French |
| 2 | Italian |
| 3 | German |
+----+-------------+
假设我们要存储单词“ red”。在表“单词”中,id = 1,单词=“红色”。
“语言”表中将有三个条目
+---------+---------+-----------------+
| word_id | lang_id | langword |
+---------+---------+-----------------+
| 1 | 1 | rouge |
| 1 | 2 | aldo |
| 1 | 3 | rot |
+---------+---------+-----------------+
“ langwords”中的记录数应为单词数乘以语言数。上面的结构允许轻松访问给定语言中的所有单词或每种语言中的相同单词。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句