标准库:DB 数据库

数据库设计思想

数据库设计是很典型的案例,通常我们用它作为学习的样本,在设计中有些模式也会被鉴戒或者被引入其他的领域。首先数据库本身是非常庞大而复杂的概念,跟数据库相关的东西很多,如何在不同类型数据库之间抽象出很好的设计是很难的事情。标准库提供的是 API 设计而不是框架设计,跟数据库相关的框架可能是利用辅助类型快速创建 SQL 语句,读写操作类似 ORM 框架,但是标准库并不会提供这些。任何一种框架都会有很多不同类型组成,它的关系相对来说非常复杂,内部也会涉及大量的动态特征,这些都不是标准库应该承担的责任。

从设计角度来说,实际上是一个倒金字塔结构。底层是汇编语句,它不复杂只是单向操作或者二元操作。在这之上是系统调用,系统调用指定命令、编号和参数,它没有上下文状态。在这之上提供库级别的 Api,它的调用格式与系统调用不一样,API 设计可能是系统调用的包装,也有可能是用户空间的函数类型,理论上也不维持状态,它提供复合类型的调用。

很多编码规范建议标准库不要提供全局设置,Go 在这点上做的并不好,标准库提供了很多默认全局变量,很多严谨的语言不这么做,Go 这种习惯显然是来源于对 C 语言的继承,C 语言因为早期的编程理念有这样的痕迹,新的语言其实很少这样做。在这之上提供框架级别的 API,维持状态。对于标准库来说它提供的是库级别的 API,它不提供框架级别的 API,框架级别的 API 复杂度非常的高,耦合性非常强。所以我们会选择第三方的框架去使用。在往上是 App 层面。

在哪个层面决定设计复杂度和完成度,对于标准库来说设计数据库相关的操作是很麻烦的事,RDBMS 数据库很多种,比如 SQLite、MySQL、PostgreSQL,怎么样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值