MVC 中的模型管理
model management in MVC
我正在寻找在 MVC 中制作模型的最佳实践。
我正在制作一个具有并发用户的套接字服务器。
据我了解,MVC 中的模型包含业务逻辑,因此如果我从数据访问或 db SAO 中获取模型。
当其他人更改了数据库中的属性时,如何更新此模型对象?
我能想到的第一个解决方案是始终通过从数据库访问它来获取模型的属性。
第二个是做模型池,修改引用
有什么建议吗??
如果您只有一台服务器和一个进程,您可以缓存您的模型(静态变量或类似变量),您将在内存中只有一个镜像数据库的模型。但这会扩展不好(或者更好的是根本不会扩展)。因此,根据您可以容忍的延迟时间,您可以拥有多个服务器和进程,它们有自己的缓存,定期从数据库更新。这当然可能意味着数据损坏。另一种方法是,如果一个服务器更改了一个实体,它会通过套接字通知所有其他服务器,使其缓存中的该实体无效。中途是所有服务器缓存在内存中,但每次请求对象时,仅从数据库中提取时间戳(或版本)以确定缓存是否是最新的。
我正在寻找在 MVC 中制作模型的最佳实践。
我正在制作一个具有并发用户的套接字服务器。
据我了解,MVC 中的模型包含业务逻辑,因此如果我从数据访问或 db SAO 中获取模型。
当其他人更改了数据库中的属性时,如何更新此模型对象?
我能想到的第一个解决方案是始终通过从数据库访问它来获取模型的属性。
第二个是做模型池,修改引用
有什么建议吗??
如果您只有一台服务器和一个进程,您可以缓存您的模型(静态变量或类似变量),您将在内存中只有一个镜像数据库的模型。但这会扩展不好(或者更好的是根本不会扩展)。因此,根据您可以容忍的延迟时间,您可以拥有多个服务器和进程,它们有自己的缓存,定期从数据库更新。这当然可能意味着数据损坏。另一种方法是,如果一个服务器更改了一个实体,它会通过套接字通知所有其他服务器,使其缓存中的该实体无效。中途是所有服务器缓存在内存中,但每次请求对象时,仅从数据库中提取时间戳(或版本)以确定缓存是否是最新的。