gpt4 book ai didi

database - 如何有效地保存每个实体的用户状态?

转载 作者:搜寻专家 更新时间:2023-10-30 20:49:29 24 4
gpt4 key购买 nike

TLDR:如何在我的应用程序的每个实体上保存每个用户的状态,避免笛卡尔积?

假设我有 1 万个实体和 1 万个用户,每个用户在每个实体中都有一个状态。为了管理我的用户,感觉我必须在某个笛卡尔表上为每个用户保存一个条目,该表将有 1 亿个条目,这似乎是不合理的..

我一直在想也许这个表可以按用户的主键排序,这样我的查询就可以更有效率,但处理这种情况似乎仍然是不好的方式。

任何解决方案都将受到高度赞赏,无论是数据库选择本身 - 关系与否,不同的 ERD 或其他任何东西

谢谢!

最佳答案

首先:根据您的问题,所有用户都可以拥有每个实体的状态,并且应该保存所有这些信息。您有 1 亿个具有相同元数据(entityID、userID、statusID)的条目。所以你在用户和实体之间有笛卡尔积。数据建模模式没有任何 ERD 改进。

其次:您有 1 亿个条目作为 MAXIMUM。我认为您的数据不够大,没有涵盖 3V 的大数据(容量:数据量,速度:数据进出速度,种类:数据类型和来源的范围)。您可以通过关系 DBMS 来处理它。 但是,如果您有超过 1 亿个条目(例如每天或每周 1 亿个条目),您应该使用大数据技术。

第三:要在查询中获得最佳性能,您可以使用一些内存中的 DBMS。您有 1 亿个条目,其中包含 3 个 Long(或 BigInt)ID。所以你大约需要最大 100 * 3 * 8 MB (2400 MB=2.4 GB) 内存。 (我确定您有大型服务器来处理 1 万个用户和 1 万个实体。)

关于database - 如何有效地保存每个实体的用户状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47223955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com