我开发了一个多人游戏,我希望通过数据库中的研究将两个彼此不认识的玩家联系起来。所以我想这样做:
我的问题是:我怎么能确定在同一时刻搜索随机玩家的两个玩家需要两个不同的玩家并且不一样,因为SELECT返回相同的玩家? 换句话说是SELECT同步还是异步?
答案 0 :(得分:1)
我希望你做的是3层设计,而不是2层。例如。程序连接到中间连接到数据库的服务器(3层),还是程序直接连接到数据库(2层)?
如果是2层,您可能需要将某个选项包装在抓取播放器并更新表格的某种交易中,以便第二个请求不会抓住同一个播放器。另外,您可能需要考虑切换到3层设计,以便更好地管理用户可以和不能对您的数据库执行的操作。
如果是3层,您可以通过使用您用于在中间构建服务器的语言提供的某种锁定系统来避免这一切。大多数现代编程语言现在提供了一些语法,允许您指定一次只有一个线程应该运行给定的代码片段,从而允许您管理这些类型的并发问题。
上考虑这个问题