0

我正在寻找一种在MVC中制作模型的最佳实践。
我正在与一个并发用户套接字服务器。
据我所知,MVC中的一个模型包含了业务逻辑,以便从数据访问或db SAO获得模型。MVC中的模型管理

当其他人更改了数据库中的属性时,如何更新此模型对象?

我能想到的第一个解决方案是始终通过从数据库访问模型来获取模型的属性。
第二个是制作模型库并修改引用。

任何建议?

+3

您的数据库是单一事实。当你需要数据时,从数据库中获取数据。这就是它的目的。 –

+0

@JBNizet所以在模型中将没有结构,但从数据库获取方法? –

+0

任何建议,这是一个重型数据读取实时游戏写如何避免这种情况? –

回答

0

如果你只有一个服务器,只有一个进程,你可以缓存你的模型(静态变量或类似),你将只在内存中有一个镜像数据库的模型。但是这会缩小比例(或者更好的是不会缩放)。因此,根据您可以容忍的延迟时间,可以有几个服务器和进程拥有自己的缓存,并定期从数据库进行更新。这当然意味着数据损坏。另一种方法是,如果一台服务器更改了一个实体,它就会通过套接字通知所有其他服务器,从而使其缓存中的实体无效。中途是所有服务器都缓存在内存中,但每次请求一个对象时,只有时间戳(或版本)从数据库中提取出来,以决定缓存是否是最新的。

+0

感谢您的想法:) –