【问题标题】:Structuring the table of a multi-lingual dictionary database构建多语言字典数据库的表
【发布时间】:2013-03-22 22:21:01
【问题描述】:

我想为多语言词典(英语 - 马拉地语)的数据库构建表。 Marathi 是印度的一种区域语言。
字典的格式为:

单词 |英语含义1 | marathi_meaning1 |英语含义2 | marathi_meaning2 ... marathi_meaningN


根据单词是否属于任何词汇类别(名词、副词、动词、形容词等),单词可以具有可变数量的英语和马拉地语含义。
目前我想到了一种低效的方法来创建这样的表:

Table: word

  • word_id
  • english_meaning1
  • marathi_meaning1
  • english_meaning2
  • marathi_meaning2
  • english_meaning3
  • marathi_meaning3
  • english_meaning4
  • marathi_meaning4



    .
  • english_meaning10
  • marathi_meaning10


在这里,我假设英语单词的英语和马拉地语含义有固定数量的列 (20)。因此,如果一个词只有一个含义(英语和马拉地语),其余列将保持为空。

另外,如果是单词,例如:'about',在字典中显示为:

about1 - 含义
about2 - 含义

然后我将它们作为上述结构化表格中的单独行进行维护。
这种方法是不是有问题?这可以通过规范化来解决吗?我想到了一个办法 表格的位置:
表:单词

  • word_id

表格:word_english

  • id
  • word_id(来自单词表的 FK)
  • english_meaning


表格:word_marathi

  • id
  • word_id
  • marathi_meaning


我不太确定上述方法是否有意义。任何人都可以提出一个可能的解决方案吗?提前致谢!

【问题讨论】:

    标签: database database-design normalization


    【解决方案1】:

    哎呀。绝对正常化

    word
    ---------
    word_id
    word
    definition
    language_id
    lexical_part_id
    
    language
    -----------
    language_id
    name
    
    word_word
    ------------
    word1_id
    word2_id
    
    lexical_part
    -------------
    lexical_part_id
    name
    

    然后用等价图填写word_word表

    【讨论】:

    • 您能解释一下表格 word_word 的用途吗?我没有得到那部分。
    • ok - 假设单词 1 是 id 1 的“don”,另一个单词是 id 2 的“two” - 你想通过在 word_word 中输入一行来声明等价,其中 word1_id = 1 和 word2_id = 2. 稍后你会问 - 通过 SELECT word2_id FROM word_word where word1_id = 1 相当于 'don' 的所有单词是什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2019-07-16
    • 1970-01-01
    相关资源
    最近更新 更多