我正在创建用户正在上传多个文件的asp.net-mvc应用程序。 数据将与db数据进行比较,稍后处理和导出。也是分页。
显示这些数据时,正在导入排序和过滤。
上传数据时,其中一些将存储在db中,一些将显示为db中未找到,一些将被修改并存储...等等
我的问题是,存储上传数据的最佳方式是什么才能进行处理或查看?
源文件是(csv或excel)
其中一个文件示例
Name Age Street City Country Code VIP
---------------------------------------------------------
Mike 42 AntwSt Leuven Belgium T5Df No
Peter 32 Ut123 Utricht Netherland T666 Yes
班级的例子
public class User
{
public string Name { get; set; }
public Address Address { get; set; } // street, city,country
public Info Info { get; set; } // Age, and Cres
}
public class Info
{
public int Age { get; set; }
public Cres Cres { get; set; }
}
public class Cres
{
public string Code { get; set; }
public bool VIP { get; set; }
}
答案 0 :(得分:1)
如果数据量很小并且您只需要暂时存在它们,请随意将它们存储在内存中,从而减少您使用其他解决方案所需的所有开销。
如果服务器或应用程序因任何原因关闭,您只需要确保内存中的数据将会消失。
考虑如果同一用户第二次执行操作会发生什么,而第一次数据的操作尚未完成,也可能是个好主意。如果这种情况发生在您身上(通常会发生),请确保使用良好的同步机制来防止竞争条件。
答案 1 :(得分:1)
有很多处理这个问题的策略(我实际上只是写了一篇关于这个主题的完整论文),为了达到这个目的,你需要考虑许多不同的考虑因素。
根据存在的数据量以及您正在使用的数据,简单地将信息存储在会话存储中可能非常简单。现在,您实际上如何实现会话存储取决于您,并且pros and cons指向您决定如何执行此操作。
我个人建议使用服务器端会话存储来处理所有内容,并且有多种不同的选项可供选择。例如:SSDB和Redis。
然后,从那里,您需要一种与客户沟通其数据实际发生的方式。如果多个客户端需要访问相同的数据集并且单个用户上传更改,您将如何向每个用户提醒此更改?同样,有很多选项,您可以使用Pub/Sub Framework来提醒所有侦听客户端。您还可以使用Microsoft的SignalR框架来尝试处理此问题。
对于这个问题,有很多不同的If,But's,Maybe's等等,不幸的是,我不相信有任何一个完美的解决方案可以解决你的问题,而不知道你想要实现的目标。