【发布时间】:2019-07-24 05:36:42
【问题描述】:
我们目前正在使用 PostgreSQL,现在必须在数据库中保存一些表。表一旦创建就永远不会更新,但可能会被过滤。
表格本质上是动态的,因为可能有 n 列,
所以一张桌子应该是:
|------|--------|--------|
| NAME | DATA 1 | DATA 2 |
|------|--------|--------|
另一个表是:
|------|--------|--------|--------|--------|--------|
| NAME | DATA 1 | DATA 2 | DATA 3 | DATA 4 | DATA 5 |
|------|--------|--------|--------|--------|--------|
数据未规范化,因为在处理 n 行时会很痛苦,因为所有行都是一次读取的。
这些是我想出的解决方案,
- 将表保存为 JSON 类型或 HStore 对中的 JSON。
- 将表格另存为文本字段中的 CSV 数据
存储上述数据的替代方法是什么? NoSQL 数据库可以处理这些数据吗?
【问题讨论】:
-
当您说可以过滤表时,您的意思是您针对多个表或其中一个表运行查询?你有什么性能要求?顺序扫描可以吗?我们所说的表格/表格中的列数/表格中的行数是多少,数千/百万?
-
查询将在每个表上完成,而不是针对多个表。列数可以是
n,其中n < 12最多,行数可能是数千,不超过十万。 -
您对无模式表功能有疑问吗?我的意思是你想在同一个表中存储具有不同列数的行还是每个表都应该有静态列数?
标签: postgresql database-design cassandra nosql data-modeling