上文我的WEB设计契约--数据库篇
是一个通用的契约,如果用PostgreSQL数据库引擎的话,情况会变的更好玩.
PostgreSQL数据库的SQL语句有一个特性.
如果在SQL语句中的表名,字段名没用双引号包裹
的话,表名,字段名会自动转换为小写
.
这个特性可以对上文的契约进行一些优化,在书写代码和配置文件的时候会方便很多.
可以把契约改成
- 关联数组的key表示字段,value表示相关参数
- key小写
为SELECT/UPDATE的WHERE条件
- key大写
为INSERT的field值对定义
- key混写
为UPDATE的
field值对定义
- key=='*'为SELECT语句返回的字段
- key=='@'为扩展的SQL语句,如limit,order等,当然里面还有细节的设计
从提交的数据来分析到底要执行select/update/insert并不难(insert语句一般是没有where的),但是这个契约对写配置有什么方便的呢?
当提交数据后,不管到底要执行那种操作,后台总要对数据进行校验和约束,先不说校验,先说约束,比如
- 限制select的返回字段,也就是key=='*'的情况,需要定义返回字段限制scope=array('id','name')
- 限制update字段,也就是key混写
的情况,需要定义字段限制scope=array('Name')
- 限制insert字段,也就是key大写
的情况,需要定义字段限制scope=array('NAME'),id一般是自动的了
那其实上面三个请求可以把scope写到一起array('id','name','Name','NAME')
编写程序提取要返回的字段/updat的字段/insert的字段,然后和scope进行数组的运算,求交集/差集(或者直接判断是否相关值是否存在于scope数组中),判断就可以知道输入数据是否合法了,而生成的SQL语句无需考虑大小写问题.代码可以简化很多.
这种契约的意义呢!
一切都逻辑化了,库化了,
配置化了,通过配置来完成网站建设成为可能.常规后台数据编程低代码成为可能.
想想Google App Engine的复杂程度,再看看如果按照这种契约,对特定应用书写特殊的接口,在大多数应用中后台程序员可以"失业"了.再想想这算框架么?把上述契约代码化后,也没有几K,基于数据契约的框架,我觉得不能称为框架.基于此契约针对特定应用,完善各种特殊接口才能称为框架.
ps:
这是一种小技巧,我的出发点,用最低的代码成本,结构成本来完成常规需求
分享到:
相关推荐
PostgreSQL(postgresql-14.2-2-windows-x64.exe),适用于Windows系统:PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象...
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现...
PGConf.CN2019大会资料 培训PPT--4-李章梅--HugeGraph图数据库介绍及使用PostgreSQL作为后端存储
pgweb - 一个基于web的PostgreSQL数据库浏览器
postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-...
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现...
Linux下的PostgreSQL数据库配置与管理
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现...
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现...
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现...
.PostGreSQL安装部署系列:Centos 7.9 安装指定PostGreSQL-15版本数据库
官方稳定版本 postgresql-9.4.26-1-windows-x64.exe
postgresql数据库驱动jar,用于连接postgres数据库必备驱动jar,亲测可用,适用于postgres9.6等
PG-13.7 数据库安装包 postgresql-13.7-1-windows-x64.exe 官方下载的安装包 windows下 直接安装即可
原生的nacos仅支持MySQL,现编译完成后支持PostgreSQL。内含SQL脚本,遇到问题可联系我 Q:1004201125
腾讯云-PostgreSQL云数据库平台概述.docx
1.nacos服务,适配postgresql数据库。 2.提供nacos,postgresql的创建nacos数据库脚本。 3.nacos/conf/nacos-pg.sql数据库脚本文件。 4.nacos版本1.4.2。
藏经阁-PostgresChina2018_肖斐_PostgreSQL数据库时空引擎Ganos.pdf
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现...
最新版本PostgreSQL JDBC驱动包,还包括老版本驱动包: postgresql-8.4-703.jdbc4(支持PostgreSQL 8) postgresql-9.4.1212(支持PostgreSQL 9) postgresql-42.2.10(支持PostgreSQL 42)