Преобразование данных nosql (firestore) в mysql

#mysql #sql #database #data-structures #relational-database

#mysql #sql #База данных #структуры данных #реляционная база данных

Вопрос:

Ранее я использовал Firestore для хранения данных моего приложения. Теперь я хочу изменить свой сервер, который поставляется с базой данных sql.

У меня есть следующая структура:

структура

и хотите преобразовать это в схему sql. Эта структура представляет собой словарь в моем приложении. Один словарь принадлежит к одному списку и имеет одно из многих оригинальных значений и один из многих переводов для этих оригинальных значений.

Но я изо всех сил пытаюсь обрисовать эти отношения.

Это мой нынешний подход, но я им не доволен:

подход

Таким образом, у меня есть одна сущность для самого словаря, в которой хранится связь со списком и оценка (как часто этот словарный запас отвечал правильно или неправильно в тесте). Также у меня есть слово сущности, которое просто представляет одно слово (например, «магазин» или «магазин» из приведенного выше примера).

Кроме того, существует разделительная таблица vocabulary_word, которая соединяет один словарь с соответствующими словами и типом (перечисление = «оригинал» или «перевод»).

Но теперь мне интересно, как проверить наличие дубликатов словарей? и как обеспечить, чтобы всегда был хотя бы один оригинал и хотя бы один перевод для словаря?

Является ли это полезным для хранимых процедур (или ответственность лежит на моем бэкэнде) , или эта схема просто плоха, и есть лучшая структура?

Заранее спасибо, я ценю ваше время.

Комментарии:

1. «…чтобы изменить мой сервер, который поставляется с базой данных sql… » — В настоящее время как реляционные, так и базы данных NoSQL используют SQL для запросов-последний вид оксюморона, но черт возьми. SQL сам по себе не должен быть причиной миграции, если только нет особых ограничений языка запросов, о которых вы не упоминаете.

2. Похоже, что запросы агрегации не поддерживаются изначально из firestore (для этого вам нужно немного поработать). Кроме того, я хочу иметь больший контроль над своим бэкэндом, и мне также нужны некоторые закадычные друзья. По этой причине я хочу перейти на серверную часть laravel с базой данных sql.