开发模块:军团战
该模块包含的子模块:1、实际战斗部分(也是最核心的部分)
2、战报保存和重现
3、用户有关军团站的信息储存部分
4、由以上三个基础子模块做支持的一些游戏业务
数据分析和设计:1、战斗部分作为军团战的核心部分,该部分的数据存储需要涵盖对战双方的军团,该场战斗的城池,该场战斗的时间,该场战斗在某一时间点的现场保存,该
场的战斗结果,该场战斗的双方的攻击队列等。对于某个城池的某个时间点来说,战斗是唯一的。所以可以根据城池id和战斗开始时间new一个战斗对象。
2、战报的存储是依附于战斗的。所以战报的数据库表格的主键应为城池id,战斗开始时间和某次对抗的顺序id
3、用户的军团战信息的主键肯定是uid,每个uid对应一个obj。
反思设计不合理的地方:1、对于每个战斗对象来说,没有赋予该对象一个唯一id。造成的结果是,业务层跟前端交互总是拿城池id和战斗开始时间去确定某一场战斗,定位某一场战斗非常麻烦。如果每次new一个战斗对象的时候,都赋予一个唯一id,那前后端可以用该id去进行信息交互,省了很多计算战斗开始时间的逻辑。
2、用户信息存储部分设计的不合理,增加了二次开发的难度。二次开发时,加的业务逻辑很丑。目前还没想出在尽可能少改动数据库表的情况下,让信息存储和获取逻辑更清晰。