Asp.net mvc Asp.NETMVC将聊天消息保存在文档数据库或Azure表中

Asp.net mvc Asp.NETMVC将聊天消息保存在文档数据库或Azure表中,asp.net-mvc,azure,signalr,azure-table-storage,Asp.net Mvc,Azure,Signalr,Azure Table Storage,如果当用户彼此聊天时,聊天消息用大量数据破坏了我的数据库,Azure中的Sql Server数据库似乎效率低下且成本高昂 是否有更好的Azure解决方案,我仍然可以保存与消息相关的数据(例如从id、到id、时间戳等) 由于不熟悉文档数据库和Azure表,它们之间有什么区别?其中一个是好的解决方案吗?还是有更好的解决方案?也许是Sql Azure联合会 目前我使用blob存储图像,但这似乎不是一个很好的聊天信息解决方案。Azure Tables既漂亮又便宜。它允许您按分区和分区内的ID进行搜索—其

如果当用户彼此聊天时,聊天消息用大量数据破坏了我的数据库,Azure中的Sql Server数据库似乎效率低下且成本高昂

是否有更好的Azure解决方案,我仍然可以保存与消息相关的数据(例如从id、到id、时间戳等)

由于不熟悉文档数据库和Azure表,它们之间有什么区别?其中一个是好的解决方案吗?还是有更好的解决方案?也许是Sql Azure联合会


目前我使用blob存储图像,但这似乎不是一个很好的聊天信息解决方案。

Azure Tables既漂亮又便宜。它允许您按分区和分区内的ID进行搜索—其他所有内容都没有索引,无法轻松搜索。如果您只需要按用户/日期检索聊天记录,那么这可以很好地工作


Cosmos DB比Azure表灵活得多,但成本更高,隐藏的成本也更多,比如性能成本。即使你不使用它,也要为每个收藏付费。

Azure Tables既好又便宜。它允许您按分区和分区内的ID进行搜索—其他所有内容都没有索引,无法轻松搜索。如果您只需要按用户/日期检索聊天记录,那么这可以很好地工作


Cosmos DB比Azure表灵活得多,但成本更高,隐藏的成本也更多,比如性能成本。即使你不使用它,也要为每个收藏付费。

也许你可以建议…这是一个典型的社交网站,如Match或OkCupid,我需要一个页面,在该页面上可以看到用户的图片、时间戳和最后一条消息。然后,如果单击上一条消息,我可以调出另一个页面,其中有最后6条消息,可以创建新消息。此外,如果用户在个人资料页面中单击聊天按钮,则会打开一个小的聊天窗口与该用户聊天,最后1-2条消息可能也会出现。我从您的评论中看到,如果我只想打开前一个用户的聊天,表将很好地工作,但是我需要显示最近6-10个用户聊天记录的页面呢!?是否有一种方法可以查询表中所有来自我的消息(id),然后按唯一id(我也发送消息的用户id)和日期进行排序?我会将聊天元数据(如谁与谁交谈、何时与谁交谈等)存储在SQL数据库中,并在SQL中保留聊天的GUID,但实际聊天文本存储在Azure表中。通过这种方式,您可以通过元数据进行搜索并显示最近的X次聊天/消息,但要将数据保存在表中。同样的原则也适用于此——您可以将实际聊天存储在Azure Blob中——只要您可以从SQLID获得数百万用户的ID,这是一个很好的问题。如果您有此问题,您将有资源重新写入存储。不要想得太多。也许你可以建议…这是一个典型的社交网站,如Match或OkCupid,我需要一个页面,其中可以看到以前的消息,以及用户的图片、时间戳和最后一条消息。然后,如果单击上一条消息,我可以调出另一个页面,其中有最后6条消息,可以创建新消息。此外,如果用户在个人资料页面中单击聊天按钮,则会打开一个小的聊天窗口与该用户聊天,最后1-2条消息可能也会出现。我从您的评论中看到,如果我只想打开前一个用户的聊天,表将很好地工作,但是我需要显示最近6-10个用户聊天记录的页面呢!?是否有一种方法可以查询表中所有来自我的消息(id),然后按唯一id(我也发送消息的用户id)和日期进行排序?我会将聊天元数据(如谁与谁交谈、何时与谁交谈等)存储在SQL数据库中,并在SQL中保留聊天的GUID,但实际聊天文本存储在Azure表中。通过这种方式,您可以通过元数据进行搜索并显示最近的X次聊天/消息,但要将数据保存在表中。同样的原则也适用于此——您可以将实际聊天存储在Azure Blob中——只要您可以从SQLID获得数百万用户的ID,这是一个很好的问题。如果您有此问题,您将有资源重新写入存储。不要想得太多。