我正在为多语言翻译设计一个数据库。在另一种语言中,一个特定的单词可以有多个单词(就像一个单词的同义词)。
例如,单词a(在language1中) ->单词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
)虽然语言表看起来很整洁。链接表很乱。
例如,如果language3在语言中有3个单词表示相同的单词,表中的1&2个条目如下所示
1 1 1,1 1 2, 1 1 3,...有谁能建议一个更好的设计吗?
发布于 2015-02-04 13:19:29
我设计它的方式如下:
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 languages表中的条目如下所示
+----+-------------+
| id | langname |
+----+-------------+
| 1 | French |
| 2 | Italian |
| 3 | German |
+----+-------------+比方说,我们要储存“红色”这个词。在表‘id=1’中,单词= 'red‘。
在‘langword’表中会有三个条目
+---------+---------+-----------------+
| word_id | lang_id | langword |
+---------+---------+-----------------+
| 1 | 1 | rouge |
| 1 | 2 | aldo |
| 1 | 3 | rot |
+---------+---------+-----------------+ “langword”中的记录数应该是单词数乘以语言数量。上述结构允许方便地访问给定语言中的所有单词或每种语言中的同一个单词。
https://stackoverflow.com/questions/28316587
复制相似问题