PostgreSQL数据库,每行约10,000个布尔状态

时间:2017-08-15 08:57:18

标签: database postgresql database-design

我对如何设计这个特定的数据库感到有点失落。它具有以下特点:

  • 预计有300万+行对应'用户';
  • 每个用户'与它们相关联~10,000个独特的布尔状态;
  • 这些状态本质上是稀疏的,将来会添加其他状态,并且可能不应存储在有序列表中;
  • 状态将经常更新,每2小时,每24小时,大约20个,平均每个活跃的用户&#39 ;;

显而易见的设计是在用户和状态之间有一个查找表,但我担心这在查找每个用户的状态时不够快,在查找表中预计有50亿+行

感谢任何建议。

1 个答案:

答案 0 :(得分:1)

我会创建两个表之间的关系

--------------------------------------------------
| ID | username                                  |
--------------------------------------------------
| 1  | bl-ro                                     |
--------------------------------------------------
| 2  | darkmukke                                 |
--------------------------------------------------

然后是bools的关系

--------------------------------------------------
| ID | fk_user | bool                            |
--------------------------------------------------
| 1  | 1       | true                            |
--------------------------------------------------
| 2  | 1       | false                           |
--------------------------------------------------