Архитектура базы данных для образовательной платформы NestJS + Prisma [закрыто]MySql

Форум по Mysql
Ответить
Anonymous
 Архитектура базы данных для образовательной платформы NestJS + Prisma [закрыто]

Сообщение Anonymous »

Я создаю платформу управления образованием с использованием NestJS + Prisma (MySQL).
В системе будет размещено несколько школ (на данный момент около 50), и в каждой школе есть свои учителя, ученики, классы и т. д.
Некоторые школы бывают разных типов — например:
Начальная
Подготовительная
Средняя
Каждый тип может имеют разные функции или логику (например, системы оценок, предметы, рабочие процессы), но все школы должны использовать один и тот же серверный интерфейс.
🔧 Моя цель
Я хочу иметь:
Один общий серверный интерфейс для всех школ
Возможность настроить некоторую логику в зависимости от типа школы или даже конкретных школ
Хорошая производительность и масштабируемость
Нет пула подключений или проблем с накладными расходами из нескольких баз данных.
Каждая школа имеет свой собственный домен или поддомен (например, элитная школа.tn, manar.school.tn)
💡 Варианты, которые я рассматриваю
Единая база данных (общая схема)
Все данные хранятся в одной базе данных, с полем school_id в каждой table.
Проще в обслуживании, но данные могут быстро расти.
Пользовательские функции обрабатываются в коде в зависимости от типа школы.
Мультитенантный режим с базой данных для каждой школы
Каждая школа имеет собственную изолированную базу данных.
Безопасно, но управление миграциями и соединениями становится сложным.
Может быть тяжело, если у нас есть Более 50 школ.
Независимые серверные части для каждой школы.
Каждая школа имеет свою собственную серверную часть и базу данных.
Максимальная изоляция, но ее слишком сложно поддерживать и развертывать.
❓Мой вопрос
Поскольку я хочу сохранить единую серверную часть для всех школ,
👉 какая архитектура базы данных лучше всего подходит для такого рода системе?
Следует ли мне использовать единую общую базу данных (со school_id) или многопользовательский подход (отдельные базы данных) все же лучше для масштабируемости и удобства обслуживания в долгосрочной перспективе?
Любой совет от людей, которые создавали подобные системы для нескольких школ или SaaS-системы, был бы полезен.

Подробнее здесь: https://stackoverflow.com/questions/798 ... l-platform
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»