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