gpt4 book ai didi

mysql - 事件的数据库概念,它们之间的关系在特定时间执行

转载 作者:可可西里 更新时间:2023-11-01 10:49:52 27 4
gpt4 key购买 nike

所以我正在为一个新项目的数据库概念而苦苦挣扎。

我需要一个事件数据库,这些事件之间可以有关系并且必须在特定时间执行。


示例:

编号:1,用户来自:1,user_to:2,时间:08:00

编号:2,用户来自:2,user_to: 1,07:30 时

编号:3,用户来自:3,user_to:2,时间:07:00

如果 ID 为 1 的用户在 08:01 登录,则必须执行与 ID 为 1 的用户相关的每个事件。


这些例子中的问题:

在这个例子中,所有三个事件都应该被执行,因为12有关系,2有关系>3。如果我将 ID 为 3 的事件更改为如下所示:

id: 3, user_from: 3, user_to: 2, 09:00 时

id 为 3 的事件不应该被执行,因为 'when'-index 正好在 08:01。


另一个问题:

如果 ID 为 3 的用户在 09:00 登录,则只有 ID 为 3 的事件应该被执行。


我的问题:

可能同时有超过 10k 个事件,但对于正在登录的用户只有一个,我不想计算所有事件的结果,我只想要有关系的那些给正在登录的用户。我该怎么做才能防止一直快速加载?


我的想法:

带有递归查询的 MongoDB:

Recursive search on a collection in MongoDB


带有关系表的普通 SQL 数据库:

我会在新事件添加到事件表时计算所有关系,所以我不需要在用户登录时关心它们。

感谢您的任何回复,如有任何问题,请随时提出。我也愿意接受任何新的标题建议。很难描述...

最佳答案

将这两件事分开:原始数据。解释数据的业务逻辑。在数据库中执行任何逻辑可能并不明智。

对于数据库方面的事情,您似乎有一个包含 3 列的表:(user_from、user_to、when)。如果只有一个whenuser_from 之间和 user_to , 那么你不需要 id .

当可能需要用您的应用程序语言编写时该做什么的算法。并且它可能需要在处理之前获取整个表。听起来这个算法需要在登录时应用。

加载 10K 行非常简单。由于您对事件有“间接”引用(user1 -> user2 -> eventx),因此在数据库中遵循“树”可能比在应用程序语言中的成本更高。

关于mysql - 事件的数据库概念,它们之间的关系在特定时间执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42555361/

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