Дизайн базы данных - лучший способ хранить перевод книги - PullRequest
0 голосов
/ 19 декабря 2018

Я собираюсь создать API, в котором мне нужно перевести книгу.

У меня есть книга на арабском языке, которую я хочу перевести на английский.Я хочу перевести это строка за строкой и слово за словом.То, что я хочу, чтобы веб-сайт показывал строку на арабском языке, и это перевод на английский, когда кто-то нажимает на арабское слово из этой строки.Всплывающее окно показывает, что это

  1. Значение
  2. Часть речи (глагол, существительное и т. Д.)
  3. Значение в контексте в соответствии с этой строкой.(Одно слово может иметь различное значение в разных строках)
  4. Корневое описание этого слова.
  5. Иногда Значение слова изменилось из-за его предыдущего или следующего слова (это арабская грамматика). Так, показать значение в соответствии с его предыдущим и следующим словом.

Я хочу получить все эти данные в одном вызове API.Я не хочу звонить, когда кто-то нажимает на любое слово.Должны быть предварительно выбраны все данные.

Мой вопрос.

  1. Каков наилучший способ сохранить эти данные в базе данных.
  2. Какая база данных хороша Реляционная или нет Реляционная
  3. Как я могу управлять ею за один вызов API?

1 Ответ

0 голосов
/ 21 декабря 2018

Если у вас нет дополнительных требований, я бы подошел к дизайну 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"
    }
]

Это позволит вам перестроить весь текст в пользовательском интерфейсе и добавить некоторую вспомогательную информацию для отдельных слов (илифразы, если вы выберете).

Хранение базы данных тоже будет простым.Для 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
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...