一般项目中都有有个对于项目的SQL维护的一个文档;程序员们对增删改表结构都会记录到这个表中,但是会存在一个问题就是每次都需要记录,而且还有可能记录失误等最终导致上线后因为字段不存在等问题导致出bug;如何避免这个问题呢?最好的方案是使SQL的变化也记录到git仓库管理中,这样即使A程序员改了表结构,那么B程序员拉代码的时候可以知道变化;从而更新程序员本地的代码结构保持一致。那么如何让所有程序员都知道表结构变化呢?
方案一:记录到公共知识库,而已知识库中对每次分支版本都有对应的记录,以及修改的程序员名称和时间和修改的脚本语句等等,但是这个方案如何程序员们没有协商好,没看到记录修改,那么还是会有问题。而且修改的知识库最好可以看到每次修改的详细记录。否则很容易产生不愉快。
方案二:修改的语句通过命令的形式记录到git代码版本库,这样只要程序员拉取代码既可以看到变化,进而可以执行命令更新本地的数据库表结构等等,参考 数据库迁移;但是对于字段的变化建议 开发前充分考虑,不要随便删表;一般只做建表,修改表字段类型变长,新增字段这些即可,删除表这些恢复可能会有问题。
方案三:使用Navicat的工具-》同步表结构 ;在navicat配置定时同步表结构,虽然可以同步,但是不是最实时的,程序员也无感知哪些表等变化了,这样不利于全局考虑,无法发现是否对其他程序是否有关联影响。
综上:根据具体公司情况,推荐方案二
Yii2其实内部封装了很多对数组和字符串的处理的,不用我们再去写代码处理直接调用即可,记录一下 数组处理 ,比如下面的,二位数组更加一个键的值进行分组等