【发布时间】:2022-01-02 21:29:20
【问题描述】:
每个用户在登录时至少会使用此数据 15 次。因此 READ 更为重要。
所以我有两种方法,我知道这是一个菜鸟问题,但我只是对选项感到困惑:
方法 1 多行少列,
id data user
1 task1 1
2 task2 1
3 task3 1
4 task1 7
和方法2 多列单行
id task1 task2 task3 user
1 True True True 1
2 True False False 7
请建议哪种方法最好,一切都很大程度上基于只读。所以我会从字面上获取所有这些来计算一些权限和操作。所以这些会用在用户经常去的一些主要路线上。
【问题讨论】:
-
方法 2 可能是最糟糕的选择之一,它无法扩展:您必须更改数据库和应用程序只是因为您需要第四个任务......下个月同样的问题,当 5 号任务进来时。
-
同意但高效的明智之举,对吗?如果我们至少有 100 万用户,那么如果它的第一种方法很容易有 300 万行呢@FrankHeikens
-
请准确描述您将对数据执行的操作。这将决定哪种数据模型更好。
-
选项 2 是您真正不想要的。在你犯这个错误之前,很多人都有自己的头痛,然后实施了选项 1。你想不想头痛? PostgreSQL 是一个关系型数据库,采用关系型方法使其工作。如果你不这样做,准备头痛。选项 2 只是没有选项。
-
请更具体。编写您要针对这些数据模型运行的查询并将它们添加到问题中。这样我们就可以得到答案,而不是开放式的讨论。
标签: postgresql database-design postgresql-9.4