123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- namespace PublicTools.XMLDataBase
- {
- /// <summary>
- /// 基本的数据存储
- /// 此数据的管理通常是一些本地数据:例如关卡的信息,玩家的个人信息,成绩分数等等
- /// 通关信息,成就等会发生变化的数据。
- /// 如果是不变的数据存放在哪里?或者说要跟随版本进行管理的数据存放在游戏资源路径。
- /// 跟随服务器进行编辑,修改,维护。
- /// 如果升级导致的数据格式变化如何维护?这部分数据如果用户卸载或者重新安装会发生什么变化?
- /// 数据不会丢,但是数据要发生变化了如何管理?是否要添加版本号进行维护?
- /// 如何进行数据的安全的升级?无法实现数据的安全升级?为何?如何判断数据已升级?
- /// </summary>
- public class XFileInfo
- {
- /// <summary>
- /// 类名
- /// </summary>
- private string tableName;
- /// <summary>
- /// 对应的文件名
- ///
- /// </summary>
- private string filePath;
- /// <summary>
- /// 目标路径
- /// </summary>
- private string targetPath;
- /// <summary>
- /// 默认可写,不可写的资源无法克隆,仅可写资源能克隆数据库
- /// </summary>
- private bool isCanWrite = false;
- /// <summary>
- /// 文件对应的MD5码,用来检测是否初始化完成或者是否发生了修改编辑等等
- /// 如何防止公共读的资源被外部修改?
- /// 每次对资源进行编辑记录时,更新对应文件的MD5,每次在进入游戏场景时,先校对数据的MD5
- /// 如果存在文件的MD5不一致,即可重置和回退至原系统,并再次更新数据
- /// 每次更新MD5记录表后,向游戏数据库插入更新后的MD5值。
- /// 校对顺序:先检测校对表,是否存在,如果不存在,则读取源数据。
- /// 然后校验校对表是否与系统一致,如果一致开始校验具体的数据。如果存在数据不一致代表此表被修改,则读取源数据并覆盖
- /// 更新时,每更新一条数据表,就更新一下MD5表,MD5表更新后,更新游戏数据库,使之与数据进行同步
- /// 数据如何被回退呢?只能从头开始,但是不能回退至上一个版本
- /// 系统的关键数据如何编辑?
- /// </summary>
- private string md5;
- /// <summary>
- /// 标识版本号,如果数据格式发生了变化:一般是大版本的更新
- /// 如何保证版本安全更新?不能保证?大版本如何进行安全更新?
- /// </summary>
- private string version;
- public string TableName { get => tableName; set => tableName = value; }
- public string FilePath { get => filePath; set => filePath = value; }
- public string TargetPath { get => targetPath; set => targetPath = value; }
- public bool IsCanWrite { get => isCanWrite; set => isCanWrite = value; }
- public string Md5 { get => md5; set => md5 = value; }
- public string Version { get => version; set => version = value; }
- }
- }
|