美文网首页
挖了个坑。。。

挖了个坑。。。

作者: alexlee002 | 来源:发表于2016-02-21 02:16 被阅读113次

新年开始,掉到自个挖的坑里头了。。。

去年年底开始计划重新整理一下目前项目中的一些底层公共库, 比如 model mapping, database manager, network manager 等, 本来以为这是一个工作量很小的活儿, 稍微做些代码整理优化就可以, 结果坑大了。

设计目标:

  • Model Mapping
    • JSON - Model mapping: YYModel √
    • DB - Model mapping,支持 active record:进行中
  • Database Manager
    • 支持一个 app中有多个数据库
    • 支持用户相关的数据库(用户切换, 数据库也切换)
    • 数据结构版本更新
  • network

遇到的坑:

  • model 和数据表的映射关系: 一个 model 对应多个表, 或者多个 model 对应一个表, 这个怎么实现自动映射?
  • active record, 如何实现子查询?
  • 数据版本更新: 比如应用的某个版本修改了 model 的结构, 那么 model 对应的数据库表也需要更新。 目前有两种方案:
    • 手动更新: 我们当前项目用的是手动更新, 也就是数据库维护一个版本号, 当版本号发生变化时, 调用onUpdate 函数逐个版本更新。 用户需要在这个函数里边把每个版本的更新操作手工写下来, 比如版本1->2, A 表增加了a1字段,等等。优点是比较灵活, 数据安全性有保障。
    • 自动更新: 也就是现在好多 active record 库使用的方式, 根据当前 model 的结构, 和对应的数据表进行比对, 然后把新增的 column 添加到数据表中。 应该说绝大部分情况, 自动更新都能满足,但是有些情况, 比如用户手机上的数据库版本是1, 但是目前app 的数据库版本已经是5, 但是在从版本2更新到版本3时, 需要做些特殊操作(比如某些字段值要做一些转换), 那么自动更新应该怎么实现?
      最符合像我一样比较喜欢偷懒的人的想法的, 就是默认使用自动更新, 但是又能有一个机制, 让我们能够对其中的某个过程插入特殊处理。 这又该如何实现?(// 这是过度设计么?//)

相关文章

  • 挖了个坑。。。

    新年开始,掉到自个挖的坑里头了。。。 去年年底开始计划重新整理一下目前项目中的一些底层公共库, 比如 model ...

  • 挖了个坑

    生娃到五六个月的时候,头发掉得厉害。说好这段时间不写小说的,因为容易失眠。 奈何,没忍住,看了一个关于梦的主题征文...

  • 再挖个坑,明天填,push的

    再挖个坑,明天填,push的 再挖个坑,明天填,push的 再挖个坑,明天填,push的 再挖个坑,明天填,pus...

  • 与岁月无关,和时光有染。

    挖个坑。。。

  • vue的history模式下参数如何隐藏。

    【挖个坑】

  • P改2 | 不以取悦观众为目的的演示设计都是耍流氓

    现在觉得,当初开通微信公众号就是为自己挖了一个坑, 新开“P改”专栏又为自己挖了另一个坑…… 可是,明知是坑,自己...

  • 挖个坑

    本想对最近的SM交易做些复盘,主要是反思不足,但倦意来袭。越来越熬不动夜了,往常这个点,还饶有精神,最近夜里十点一...

  • 挖个坑

    有些事说了 但不一定做了 有些事做了 但最好别说 (。ᴗ。) 先挖一个坑,埋点东西。 至于是三五天 还是三五年 甚...

  • 挖个坑。

    论坛体。 在韩泰国土特产代购。 可盐可甜油缸米。 辛普森哥哥很温柔。 七是小王子。 没有排骨汤没有新生活。 今天你...

  • 挖个坑

    这世间那么多黑暗与失望,尽量不让自己陷入糟糕之中,想想之前的传销式律所,没有律证群没有、成天窝在办公室打游戏...

网友评论

      本文标题:挖了个坑。。。

      本文链接:https://www.haomeiwen.com/subject/huwvkttx.html