gpt4 book ai didi

entity-framework - 可以广播消息时,消息系统如何组织数据库表?

转载 作者:行者123 更新时间:2023-12-01 13:00:42 36 4
gpt4 key购买 nike

想象一个电子商务网站,用户可以在其中创建自己的商店。
我正在为此类网站设计内部消息传递系统,目前我对如何在数据库方面实现它犹豫不决。

需要支持以下场景:

  • [u => u] 用户可以向其他用户发送消息;
  • [u => s] 用户可以向商店发送消息;
  • [s => u] 商店可以向用户发送消息;
  • [s => uu]商店可以向所有顾客发送消息。

如果我只有一个简单的 Messages 表,而一家商店想要向 10,000 名用户广播一条消息,我将需要一次插入 10,000 条类似的记录。

另一种方法是将PersonalMessagesBroadcastMessages 分开,并引入BroadcastMessageReceivers“映射”表。但是,这种方法使处理单个消息变得复杂,例如删除、显示收件箱和发件箱等。

考虑到我使用的是 Entity Framework 和 MS SQL 2008,是否有推荐的选项?

最佳答案

如果您希望每个用户能够独立管理其收件箱的内容,您必须将广播消息作为一组单独的消息(或某些 M:N 关系)来处理 - 每个用户都必须有自己的记录,这样如果他删除消息来自收件箱的其他用户不会受到影响。实现取决于您想要处理广播的方式——您是否需要处理广播消息本身?然后你需要单独的实体类型。

如果你想使用 Entity 框架,请确保你有用于广播的存储过程。存储过程将获取消息、发件人和商店,并为所有目标用户创建记录。直接通过 EF 执行此操作会非常慢。

关于entity-framework - 可以广播消息时,消息系统如何组织数据库表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6135881/

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