当前位置: 首页 > news >正文

NineData全面支持PostgreSQL可视化表结构设计

“PostgreSQL 是最像 Oracle 的开源关系型数据库“,也正因为如此,很多企业都青睐 PostgreSQL,拿它当成 Oracle 的替代品。所以毫无疑问,目前 PostgreSQL 在企业中非常常见。

对于直接接触 PostgreSQL 的开发人员而言,即使是业内摸爬滚打多年的老鸟,也难免会觉得 PostgreSQL 黑屏建表麻烦,语法多、参数多、需要记住的内容更是有多又杂,一不小心就会因为拼写错误、标点错误等低错导致各种报错,尤其是在面对复杂表结构的情况下,黑屏编写 SQL 语句让人心态爆炸。撇开建表,修改表结构则更加让人抓狂,修改过程不能有差错,否则甚至可能影响业务。

因此,用一个功能完善的图形化工具来替代黑屏界面,就显得非常重要了。而 NineData 刚好就符合,NineData 的目标是,无论对于 PostgreSQL 的了解程度如何,哪怕是刚入门的新手,都能快速把 PostgreSQL 表结构给设计起来。

有什么亮点?

在上期迭代中,NineData 正式发布针对 PostgreSQL 的可视化表结构设计功能。要满足开发人员对于 PostgreSQL 图形化表结构设计的需求,NineData 的解决思路如下:

  • 模块化:将建表语句的各项复杂的参数分类,然后分别归纳到列、索引、外键、分区、表选项五个模块下,界面布局相当清晰,学习成本基本为 0。

  • 参数全方位覆盖:对于表、字段、约束等各种属性的参数,均提供完整的定义,包含分区属性及分区表的创建、多种约束及普通索引、字段数据类型与校验集生成列属性等。

  • 操作简单:提供便捷的交互操作,结合实时 SQL 预览帮助用户快速完成表结构定义与编辑。

NineData 的目标可以归纳为一句话:老鸟用能增加效率,菜鸟用能快速上手。

如何可视化创建 PostgreSQL 表结构?

通过 NineData 的 SQL 窗口,可以可视化创建 PostgreSQL 表,几乎覆盖所有建表语句的能力。

配置列:包含列名、数据类型、NOT NULL 属性、默认值、注释、Primary Key 属性等基础配置,同时还支持生成列、COLLATE(列的排序规则)等。

上图中,配置了 5 个列,其中设置 ID 为主键并不可为空,full_name 为生成列,该列的值为 first_name 和 last_name 列的组合。

配置约束:提供了 主键索引(PRIMARY KEY)、唯一索引(UNIQUE)、排他索引(EXCLUSION)、CHECK,以及普通索引(INDEX)。

上图为 age 列设置了 CHECK 约束,输入的年龄必须大于 18。

配置外键:支持为当前表配置外键,引用另一个表的主键列,支持创建一个或多个外键。

配置分区表:可视化为当前表创建分区表,为数据库带来查询性能上的提升。

上图中,在 Partition By 中指定以 age 列的年龄范围进行分区,然后在 Partitions 中输入具体的分区语句。

表选项:为表配置所有者(Owner)、表空间(Tablespace),也可以通过 LIKE...INCLUDING 属性复制现有表的结构和数据。另外还支持输入其他表选项,例如 INHERITS、WITH/WITHOUT OIDS、ON COMMIT 等。

预览 SQL:配置完成后,单击页面上的保存,NineData 会把所有配置转换成具体的 SQL,确认无误后,单击确定即可。

总结

如您所见,轻轻松松点几下鼠标就成功为 PostgreSQL 创建了一张表,由于 NineData 是根据您在界面上的选择自动生成 SQL 语句的,所以基本告别了低错、漏参数等问题造成的建表失败,相信可以在一定程度上提升您的工作效率。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 无人机监测的必要性及方法
  • ES证书过期替换方案
  • Python中的数据结构:五彩斑斓的糖果盒
  • 【深度学习入门篇 ⑦】PyTorch池化层
  • python自动化之用flask校验接口token(把token作为参数)
  • Web 安全之 VAPT (漏洞评估与渗透测试)详解
  • GB35114国密算法-GMSSL
  • list的模拟实现
  • 【排序算法】1.冒泡排序-C语言实现
  • C++基础语法:STL之容器(1)--容器概述和序列概述
  • 「Python」基于Gunicorn、Flask和Docker的高并发部署
  • 人像视频预处理【时间裁剪+画面裁切+调整帧率】
  • 工业三防平板可优化工厂流程管理
  • Redis--布隆过滤器
  • Windows与Linux双机热备软件推荐
  • 【Leetcode】104. 二叉树的最大深度
  • HTTP中的ETag在移动客户端的应用
  • Javascript 原型链
  • JavaScript异步流程控制的前世今生
  • js中的正则表达式入门
  • Meteor的表单提交:Form
  • Mysql数据库的条件查询语句
  • Shell编程
  • socket.io+express实现聊天室的思考(三)
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • WePY 在小程序性能调优上做出的探究
  • 半理解系列--Promise的进化史
  • 反思总结然后整装待发
  • 简析gRPC client 连接管理
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 人脸识别最新开发经验demo
  • 一些关于Rust在2019年的思考
  • ionic入门之数据绑定显示-1
  • ​2021半年盘点,不想你错过的重磅新书
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ‌JavaScript 数据类型转换
  • # Redis 入门到精通(一)数据类型(4)
  • #14vue3生成表单并跳转到外部地址的方式
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • $$$$GB2312-80区位编码表$$$$
  • (C)一些题4
  • (C语言)逆序输出字符串
  • (二)linux使用docker容器运行mysql
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (十六)一篇文章学会Java的常用API
  • (原创)可支持最大高度的NestedScrollView
  • (转)memcache、redis缓存
  • (转载)深入super,看Python如何解决钻石继承难题
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .NET : 在VS2008中计算代码度量值
  • .NET Framework 4.6.2改进了WPF和安全性
  • .net6Api后台+uniapp导出Excel
  • .NET框架设计—常被忽视的C#设计技巧