Стек: node.js, nest.js, ts. Текущая база на PostgreSQL
Логика фронтенда — не входит в ТЗ
1. Общая архитектура
Фронтенд (сайт) будет взаимодействовать с уникальным API методом, который вызывает набор универсальный метод. Уникальный метод получает данные и упаковывает их в необходимом формате для использования на клиентской стороне.
Логика базы данных и API
0. Базовый фронтернт получает на URL запрос с методом и выполняет метод API
1. Универсальный метод API
1. Формат запроса:
◦ Метод принимает JSON-массив, содержащий названия таблиц и полей, которые нужны для запроса данных.
◦ Если поле является связью, используется нотация через точку. Например, чтобы получить ФИО пользователя, из таблицы Пользователи. используется "ФИО", а для получения email из связанной таблицы —СвязьПользователиКонтакты.email.
2. Работа с таблицами:
◦ Запрос может выполнятся как к реальным таблицам базы данных, так и к абстрактным.
◦ При запросе к абстрактной таблицы, например, abs_Вещества, метод ищет описание таблицы Вещества в таблице abs. т.е abs_ зарезервированное сочетание символов в начале таблицы (реальные таблицы не могут иметь такое начало в названии)
◦ Далее по переданному ID находит запись, хранящуюся в таблице "Значение абстрактных полей" т.е по сочетанию ID таблицы и ID переданной записи.
◦ Данные хранятся в формате JSON, и извлекает необходимые значения (например, Код, Название).
3. Связи таблиц:
Продолжение во вложении