XFileInfo.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. namespace PublicTools.XMLDataBase
  2. {
  3. /// <summary>
  4. /// 基本的数据存储
  5. /// 此数据的管理通常是一些本地数据:例如关卡的信息,玩家的个人信息,成绩分数等等
  6. /// 通关信息,成就等会发生变化的数据。
  7. /// 如果是不变的数据存放在哪里?或者说要跟随版本进行管理的数据存放在游戏资源路径。
  8. /// 跟随服务器进行编辑,修改,维护。
  9. /// 如果升级导致的数据格式变化如何维护?这部分数据如果用户卸载或者重新安装会发生什么变化?
  10. /// 数据不会丢,但是数据要发生变化了如何管理?是否要添加版本号进行维护?
  11. /// 如何进行数据的安全的升级?无法实现数据的安全升级?为何?如何判断数据已升级?
  12. /// </summary>
  13. public class XFileInfo
  14. {
  15. /// <summary>
  16. /// 类名
  17. /// </summary>
  18. private string tableName;
  19. /// <summary>
  20. /// 对应的文件名
  21. ///
  22. /// </summary>
  23. private string filePath;
  24. /// <summary>
  25. /// 目标路径
  26. /// </summary>
  27. private string targetPath;
  28. /// <summary>
  29. /// 默认可写,不可写的资源无法克隆,仅可写资源能克隆数据库
  30. /// </summary>
  31. private bool isCanWrite = false;
  32. /// <summary>
  33. /// 文件对应的MD5码,用来检测是否初始化完成或者是否发生了修改编辑等等
  34. /// 如何防止公共读的资源被外部修改?
  35. /// 每次对资源进行编辑记录时,更新对应文件的MD5,每次在进入游戏场景时,先校对数据的MD5
  36. /// 如果存在文件的MD5不一致,即可重置和回退至原系统,并再次更新数据
  37. /// 每次更新MD5记录表后,向游戏数据库插入更新后的MD5值。
  38. /// 校对顺序:先检测校对表,是否存在,如果不存在,则读取源数据。
  39. /// 然后校验校对表是否与系统一致,如果一致开始校验具体的数据。如果存在数据不一致代表此表被修改,则读取源数据并覆盖
  40. /// 更新时,每更新一条数据表,就更新一下MD5表,MD5表更新后,更新游戏数据库,使之与数据进行同步
  41. /// 数据如何被回退呢?只能从头开始,但是不能回退至上一个版本
  42. /// 系统的关键数据如何编辑?
  43. /// </summary>
  44. private string md5;
  45. /// <summary>
  46. /// 标识版本号,如果数据格式发生了变化:一般是大版本的更新
  47. /// 如何保证版本安全更新?不能保证?大版本如何进行安全更新?
  48. /// </summary>
  49. private string version;
  50. public string TableName { get => tableName; set => tableName = value; }
  51. public string FilePath { get => filePath; set => filePath = value; }
  52. public string TargetPath { get => targetPath; set => targetPath = value; }
  53. public bool IsCanWrite { get => isCanWrite; set => isCanWrite = value; }
  54. public string Md5 { get => md5; set => md5 = value; }
  55. public string Version { get => version; set => version = value; }
  56. }
  57. }