如何为全国数据设计数据库?

how to design database for country wide data?

我必须根据一个国家的州来设计数据结构。
该国有 30 多个州,每个州都将写入和读取本州的数据。问题是我是否应该有一个分区的 table,它将被 state_code 分区,或者为每个状态制作不同的 table?我正在使用 PostgreSQL。我没有分区 table 的经验。每个州都会有大量数据。

数据将是每个区、sub-districts、村庄和村庄中学校的空间数据。

它还将包含每所学校中每个 child 的数据。这将是child.

的基本信息

每个 child 将被筛选,并根据大约 30-40 个参数将每个学生分类到他面临的 class 个问题中。

与每个学生的健康问题相关的数据也会在那里。这将包括行为问题和身体健康问题。

访问学校的卫生小组也将被存储。例如,团队成员及其信息。

我想现在事情更清楚了。每个州将有超过 100 万行。

如果您希望查询对数据进行 运行 顺序扫描,则按状态分区是个好主意 — 如果存在 WHERE 条件将查询限制为一个分区,它将由于 PostgreSQL 的 约束排除 特性,速度变得更快。

如果您想管理数据库内部的用户和安全性,您可以使用 row level security 来保证没有人看到来自不同状态的数据。这与约束排除配合得很好。