gpt4 book ai didi

ruby-on-rails - 表中的多个数据库记录与数据库查询?什么是最好的性能?

转载 作者:行者123 更新时间:2023-11-29 12:21:54 25 4
gpt4 key购买 nike

应用运行于:ruby 2.0rails 4postgresql

1.多表的故事 - 现在如何运作:

一个项目有很多用户,作为成员

此外 project 有许多 posts,当创建一个 post 时,为每个 创建一个 notification >项目用户

假设如果项目 A100 个用户,我们将在数据库中有 100 个通知,这将加载数据库很多重复项。

但是用户可以删除自己的通知,可以查看它,我们可以用用户特定的数据更新他的通知。我们将使用 rake 任务 删除比特定时间间隔早的通知。

<强>2。多个数据库查询 - 我们想要做什么:

有一个想法,即为一个事件创建一个通知,并使用一个名为notifications_users 的表,我们在其中使用多对多关系如果当前用户阅读了通知,如果该用户从他的通知选项卡中删除了该通知等,则会保留有关通知的信息。

我认为这样做的缺点是多个数据库查询,因为当我们需要查找有关通知和用户的信息时,我们将不得不查找 notification_users 表以获取需要的信息。

另外,通过这种方式建立关系,将更难从旧通知中清理数据库,因为我们不知道该通知是否已被某些用户读取。

谢谢。

最佳答案

选项 (1.) 似乎很合理,如果您可以保持通知模型精简 — 例如 user_id、activity_id、时间戳,以及可能还有几个标志,那么就不会期望不合理的性能损失,因为它看起来像非常普通的关系模型,我希望数据库能够轻松处理它。

如果您让通知过期时间紧迫,这意味着通知不应增长,或者如果它增长,例如当用户刚刚放弃帐户时,我会寻找针对问题的具体解决方案,如出现的那样。

Assembla.com我们通过电子邮件进行通知,这对我们来说效果很好,我想说。因此,也许在某个时候,您可能也想考虑这个选项。

在我看来,(2.) 不能满足业务需求,如果您不考虑它们,那么可能也不值得考虑这个选项。

关于ruby-on-rails - 表中的多个数据库记录与数据库查询?什么是最好的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17789134/

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