#mysql #sql #database #data-structures #relational-database
#mysql #sql #База данных #структуры данных #реляционная база данных
Вопрос:
Ранее я использовал Firestore для хранения данных моего приложения. Теперь я хочу изменить свой сервер, который поставляется с базой данных sql.
У меня есть следующая структура:
и хотите преобразовать это в схему sql. Эта структура представляет собой словарь в моем приложении. Один словарь принадлежит к одному списку и имеет одно из многих оригинальных значений и один из многих переводов для этих оригинальных значений.
Но я изо всех сил пытаюсь обрисовать эти отношения.
Это мой нынешний подход, но я им не доволен:
Таким образом, у меня есть одна сущность для самого словаря, в которой хранится связь со списком и оценка (как часто этот словарный запас отвечал правильно или неправильно в тесте). Также у меня есть слово сущности, которое просто представляет одно слово (например, «магазин» или «магазин» из приведенного выше примера).
Кроме того, существует разделительная таблица vocabulary_word, которая соединяет один словарь с соответствующими словами и типом (перечисление = «оригинал» или «перевод»).
Но теперь мне интересно, как проверить наличие дубликатов словарей? и как обеспечить, чтобы всегда был хотя бы один оригинал и хотя бы один перевод для словаря?
Является ли это полезным для хранимых процедур (или ответственность лежит на моем бэкэнде) , или эта схема просто плоха, и есть лучшая структура?
Заранее спасибо, я ценю ваше время.
Комментарии:
1. «…чтобы изменить мой сервер, который поставляется с базой данных sql… » — В настоящее время как реляционные, так и базы данных NoSQL используют SQL для запросов-последний вид оксюморона, но черт возьми. SQL сам по себе не должен быть причиной миграции, если только нет особых ограничений языка запросов, о которых вы не упоминаете.
2. Похоже, что запросы агрегации не поддерживаются изначально из firestore (для этого вам нужно немного поработать). Кроме того, я хочу иметь больший контроль над своим бэкэндом, и мне также нужны некоторые закадычные друзья. По этой причине я хочу перейти на серверную часть laravel с базой данных sql.