公司OA系统开发时 技术选型用了ThinkORM
ThinkORM也算是国产的老牌ORM了 上手门槛比较低 文档也比较完善
一开始 公司业务数据库只使用了Mysql 所以体验下来还行
后续 公司因业务调整 接入一些第三方的数据库 如MSSQL(SQL Server)、pgsql(Postgresql)
开始发现一些问题:
复杂查询场景 下 非Mysql驱动 容易出各种奇奇怪怪的错误(如:存储过程、子查询)
这些错误在 Mysql数据库场景下是遇不到的
在使用pgsql的时候 你还要去vendor 找thinkphp官方包下面的pgsql.sql 然后手动把驱动函数导入到pgsql数据库中才能使用这个ORM驱动(
得出结论:
ThinkORM 对Mysql支持友好 但是其它数据库表现力一般 甚至差劲
如你的项目中可能会穿插其它类型数据库的项目 请慎用
~~有人可能会说官方的链式函数支持不好 那么你写原生查询不就好了
如果复杂查询全自己手写了 我还要ORM做什么 不就是为了提高项目的可读性 降低心智负担?~~
后续 我改用了EloquentORM 也就是laravel的数据库
目前整体使用下来感觉不错 即使在比较复杂的查询构筑下 也未产生较大影响的问题
不愧是laravel
遗憾的是 这个问题我发现的太晚了 我前期用thinkORM搭建了太多业务模型和服务
再想统一ORM将会带来很多工作量 现在就是项目里跑两个ORM 各自有自己的一套模型和服务层😩
其实你们技术选型问题,既然都采用新技术pgsql首选用laravel的ORM。Laravel的ORM时刻都在更新,最新Tp的新版本bug太多了。我都放弃用tp框架了。
因为以前公司数据库只有MySQL
后面公司买了一些系统做接入(无接口,直接开数据库