首页 > 解决方案 > 如何设计一个应对规模的教师-家长数据库?

问题描述

我们正在努力搭建一个老师和家长的交流平台。第一年,我们有大约 500 所学校、300,000 名学生、30,000 名教师和 500,000 名家长在平台上。

功能概述:

  1. 任何学校的老师都可以将图像、视频、文本信息发送给该学校孩子的父母。
  2. 我们必须在数据库中保存一个班级的每个学生的出勤率
  3. 学校可以发布活动、公告或

我在想下面的设计

Design 1

All students from all the schools are in one table , Max 300,000 rows
All teachers from all the schools are in one table,  Max 30,000 rows
All events,posts from all the schools are in one table., INCREMETNS BY 1500 every day.
All the schools attendance data in single table.. increments 300,000 per a day.


Design 2
    Separating tables at school level,
    school_1_students table contains only school_1 student details,
    school_2_students table contains only school_2 student details,
    So totally 300 schools * 5 tables = 1500 tables

Design 3
  Separating databases at school level,
  School_1_db contains all the tables of school1, 
so totally 300+ dbs.

设计1很简单,在行级别上区分,只有出勤是实际每天增加300,000行的表,我们应该只将此表与学校级别分开还是有什么建议?

设计 2 在单个数据库中创建了 1000 多个表,并且几乎所有表的架构都是相同的。

设计 3 提供了很好的分离,我们可以使用 nodejs 动态处理不同的数据库以及如何管理与多个数据库的连接?

学生和家长将逐年增加。所以我们必须考虑未来系统的生存。我们应该使用 NOSQL 还是 SQL?

这种系统的行业惯例是什么?请提出一些更改或参考。

标签: sqlnode.jsdatabasedatabase-designnosql

解决方案


推荐阅读