数据库设计-存储书籍翻译的最佳方法

时间:2018-12-19 04:44:09

标签: database database-design

我将创建一个需要翻译书籍的API。

我有一本阿拉伯语的书,我想翻译成英文。我想逐行和逐词翻译它。我希望网站显示阿拉伯语行,并且当有人单击该行中的阿拉伯语单词时,这是英语翻译。弹出窗口是

  1. 含义
  2. 词性(动词,名词等)
  3. 根据此行的上下文含义。 (一个词在不同的行中可能具有不同的含义)
  4. 该词的根描述。
  5. 有时由于前一个或下一个词(阿拉伯语法)而改变了词的含义,因此,请根据上一个和下一个词来显示其含义。

我希望所有这些数据都在一个API调用中。当有人单击任何单词时,我不想打个电话。必须预取所有数据。

我的问题是

  1. 将这种数据存储在数据库中的最佳方法是什么。
  2. 哪个数据库关系好或没有关系
  3. 如何在单个API调用中对其进行管理?

1 个答案:

答案 0 :(得分:0)

除非您有任何其他要求,否则我将按照以下方式进行API设计:

[
    {
        "origin":"ARABIC1",
        "meaning":"English value 1",
        "partOfSpeach":"noun",
        "meaningContext":"English value 1",
        "description":"English text 1",
        "meaningAlternative":"English value 1.1"
    },
    {
        "origin":"ARABIC2",
        "meaning":"English value 2",
        "partOfSpeach":"noun",
        "meaningContext":"English value 2",
        "description":"English text 2",
        "meaningAlternative":"English value 2.1"
    },
    {
        "origin":" - ",
        "meaning":" - ",
        "partOfSpeach":"punctuation"
    },
    {
        "origin":"ARABIC3",
        "meaning":"English value 3",
        "partOfSpeach":"noun",
        "meaningContext":"English value 3",
        "description":"English text 3",
        "meaningAlternative":"English value 3.1"
    }
]

这将允许您在UI上重建完整的文本,并为单个单词(或您选择的短语)添加一些帮助信息。

数据库存储也将很简单。对于No-SQL,您只需将值“按原样”存储在SQL中即可:

CREATE TABLE translated_phrases (
    id serial PRIMARY KEY,        -- or whatever PK type you like
    book_id int NOT NULL,         -- a reference to a book or individual translation
    origin varchar NOT NULL,
    meaning varchar NOT NULL,
    part_of_speach int NOT NULL,  -- a reference to list of parts
    description varchar,          -- optional description
    meaning_alt varchar           -- optional alternative meaning
)