首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多语言翻译

多语言翻译
EN

Stack Overflow用户
提问于 2015-02-04 08:18:31
回答 1查看 125关注 0票数 0

我正在为多语言翻译设计一个数据库。在另一种语言中,一个特定的单词可以有多个单词(就像一个单词的同义词)。

例如,单词a(在language1中) ->单词b&c(在语言2中)。两者都是正确的。我需要把所有的单词都存储在数据库里。我研究了安发现了Schema for a multilanguage database

但我所面临的问题是,用我的话说,有很多到许多映射。我还提到了Good database and structure to store synonyms。目前这是我的数据库设计

代码语言:javascript
复制
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个条目如下所示

代码语言:javascript
复制
1 1 1,1 1 2, 1 1 3,...

有谁能建议一个更好的设计吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-04 13:19:29

我设计它的方式如下:

代码语言:javascript
复制
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表中的条目如下所示

代码语言:javascript
复制
+----+-------------+
| id | langname    |
+----+-------------+
|  1 | French      |
|  2 | Italian     |
|  3 | German      |
+----+-------------+

比方说,我们要储存“红色”这个词。在表‘id=1’中,单词= 'red‘。

在‘langword’表中会有三个条目

代码语言:javascript
复制
+---------+---------+-----------------+
| word_id | lang_id | langword        |
+---------+---------+-----------------+
| 1       | 1       | rouge           |
| 1       | 2       | aldo            |
| 1       | 3       | rot             |
+---------+---------+-----------------+ 

“langword”中的记录数应该是单词数乘以语言数量。上述结构允许方便地访问给定语言中的所有单词或每种语言中的同一个单词。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28316587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档