sql-server - 将消息标记为已查看
问题描述
我正在使用以下场景制作通知系统。
来自的用户company A
想要向 的所有用户(4000+)发送消息company B
。每个人都company B
在收件箱中收到消息。
我在设计有效的数据库设计时遇到了麻烦,当用户company B
单击消息时,我可以将消息标记为“已看到”,以便下次在用户的收件箱中用不同的颜色标记它,而其他尚未看到它的人会获得未读的颜色。
我现在的天真的方法是在我拥有的表格messageId
和userId
列isSeen(bool)
中,当用户单击带有 ID 的消息时SQL Server
,我将列更新为该isSeen
列。true
问题:我不想仅仅为了一条消息而在表中插入 4k 行,因为这会非常低效并且会降低数据库的性能。
我可以在我的数据库设计中做些什么来让我获得我想要的结果,同时又不会严重影响我的数据库性能?SQL databases
适合此类任务的工具吗?
解决方案
事实上,你描述的方式是做你想做的最好的方式。
如果您的表被正确索引,则性能一点也不差。
推荐阅读
- python - 从字典值中提取数组
- api - 如何使用 Sabre_OTA_ProfileUpdateRQ 修改特定元素
- python - Discord,py 全球禁令命令
- python - kivy FileChooserListView on_selection 事件未按预期工作
- c# - 进程退出后删除时文件被使用异常
- java - 我可以在 Spring Boot 的注释类级别中使用占位符吗?
- javascript - 将数据保存在特定的行和列中
- powershell - 在 powershell 中添加命令 add-teamChannelUser 会发生什么?
- c - 为什么转换(无符号长长)DBL_MAX(或 FLT_MAX)也会导致 FE_INEXACT 升高?
- javascript - 在 React 中更改页面时 Apexchart 消失