首页 > 解决方案 > 将消息标记为已查看

问题描述

我正在使用以下场景制作通知系统。

来自的用户company A想要向 的所有用户(4000+)发送消息company B。每个人都company B在收件箱中收到消息。

我在设计有效的数据库设计时遇到了麻烦,当用户company B单击消息时,我可以将消息标记为“已看到”,以便下次在用户的收件箱中用不同的颜色标记它,而其他尚未看到它的人会获得未读的颜色。

我现在的天真的方法是在我拥有的表格messageIduserIdisSeen(bool)中,当用户单击带有 ID 的消息时SQL Server,我将列更新为该isSeen列。true

问题:我不想仅仅为了一条消息而在表中插入 4k 行,因为这会非常低效并且会降低数据库的性能。

我可以在我的数据库设计中做些什么来让我获得我想要的结果,同时又不会严重影响我的数据库性能?SQL databases适合此类任务的工具吗?

标签: sql-serverdatabasedatabase-designdata-modeling

解决方案


事实上,你描述的方式是做你想做的最好的方式。

如果您的表被正确索引,则性能一点也不差。


推荐阅读