pgadmin GSoC 2010 数据库设计器

摘自 PostgreSQL 维基
跳转到导航跳转到搜索

pgAdmin 数据库设计器

主要想法是构建一个 pgAdmin 物理数据库建模器,以提高开发人员的工作效率。我提议使用模型驱动应用程序 (MDA) 架构实现此建模器,并始终考虑创建可共享渲染微型引擎的方式,以便以后在模型视图控制器 (MVC) 模式的理念下使用,以允许在不远的将来引入新功能。

项目

此项目的总目标是为 pgAdmin 工具构建一个物理数据库建模器,我提议使用模型驱动应用程序 (MDA) 架构实现此建模器,并始终考虑创建可共享渲染微型引擎的方式,以便以后在模型视图控制器 (MVC) 模式的理念下使用,以允许在不远的将来引入新功能。

现在我将详细描述此想法,重点关注我想做什么,而不是我将如何去做(这将在后面解释)。

目标

在我看来,pgAdmin 数据库建模器应该是一个帮助开发人员创建或修改数据库的工具,允许对表格、关系、约束、索引、触发器和其他在数据库物理建模开发中很重要的信息进行可视化编辑或创建,但高度集成到 PostgreSQL 数据库的特殊功能中,比如类型或层次结构。

我的想法是创建一个画布,用户(开发人员)可以通过点击和热键来编辑或修改数据库元数据,提供如下函数

  • 主要的图形对象将是表格,但是你可以隐藏或显示表格的部分内容,如列、索引、限制(例如,在每个部分的顶部都有一个小按钮 + 或 -),有时显示的表格信息大于屏幕,因此需由此实现某种滚动机制。
  • 只需点击即可添加表格或视图。
  • 通过某种方式将源表格拖放到目标表格,并在两个表格之间建立关系,选择关系类型。
  • 只需单击或右键单击即可更改关系类型(多、一)和可选性(必填或可选)或层次结构。
  • 只需单击列并直接在画布上书写即可编辑列名称。
  • 只需单击或通过右键菜单操作即可添加新列、约束、索引和触发器。
  • 更改表属性,例如名称(在能做的情况下),并且如果对以前用于存储数据的逆向工程数据库进行修改,请告知用户他们的更改如何影响存储在数据库中的数据,或者如果无法应用更改,也请告知用户。
  • 允许采用两种模式与数据库建模器一起使用,第一种模式用于数据库创建/修改,第二种模式用于数据库模型观察。
  • 允许使用不同的符号表示模型(如果时间不足,允许使用但仅实施一种),给定数据库建模器内部模型和图形表示之间的独立性。
  • 一个表存储库,但使用不同的图表有多个视图,例如在一个用户(或架构)中,我们可以有多个表,可以在多个图表或模型中使用(取决于持久性的实现方式:在数据库中或某种格式的平面文件中)。
  • 与 PgAdmin 的所有功能集成,以便快速完成一些任务。
  • 如果可能,添加社区认为重要且时间限制允许的其他功能。

此建模器应生成和执行数据库创建脚本并对数据库进行逆向工程(但由于时间原因,逆向工程部分只能获得允许稍后开发的基础,如果 Gsoc 中没有足够时间)。并且基于此,所有数据库元数据都应以允许为多个数据库使用单一模型并尽可能尊重它们的差异但同时保持灵活的方式进行抽象。

项目状态 26/06/2010

  • pgAdmin 图形库使用与 Hotdraw 相同的设计模式(在可能的情况下)用于数据库设计器,完成,只需解决一些小的错误和内存泄漏。

下一步

使用创建的库完成简单的表内存结构和图形表示。

计划

Google 文档电子表格

联系信息

[电子邮件符号] google mail (gmail.com) 中的 ziul1979 或 http://twitter.com/xiul 用于每日更新详情