我在以下情况下制作通知系统。
来自company A
的用户希望向company B
的所有用户(4000多位)发送消息。 company B
中的每个人都在其收件箱中收到邮件。
我在设计高效的数据库设计时遇到了麻烦,当来自company B
的用户单击该消息时,如果我下次将该消息标记为“可见”,则下次在用户的收件箱中将其标记为不同的颜色其他尚未看到的颜色将变为未读颜色。
我现在的幼稚方法是在一个表中将messageId
中的userId
,isSeen(bool)
和SQL Server
列更新为{ {1}},当用户单击带有ID的消息时。
问题:我不想只为一条消息在表中插入4k行,因为这样做效率非常低,并且会降低数据库的性能。
我在数据库设计中可以做些什么,可以让我达到想要的结果,同时又不会降低数据库的性能? isSeen
是执行此类任务的正确工具吗?
答案 0 :(得分:1)
实际上,您描述的方式是您想要做的最好的方式。
如果您的表索引正确,那么性能将不会很差。