如何缩小数据库设计与用户界面设计之间的差距?

时间:2009-11-12 18:09:54

标签: user-interface language-agnostic implementation

我知道这个问题是怎么看的,但我很认真。我正在尝试创建一个应用程序来帮助我学习数据库(sql,查询,正确的数据库设计等)。我正在工作中使用宠物项目,所以我需要关注实际需求。原始项目是通过MS Access编写的(“Frankensteined together”,正如原作者所说)。我想学习如何通过SQLite更好地完成它,但不知道如何重新创建Access提供的其他功能。

使用此网站作为与程序员和开发人员进行交互的方式(我不与任何人合作),到目前为止,我已根据Database Design for Mere Mortals问题中的建议阅读了所有this。所以,我有一个很好的小数据库设计,我打算用SQLite实现。

我还查看了如何使用Balsamiq的Mockups为应用程序设计用户界面,并向我的潜在用户群(我的团队中的同事)提交了一些想法,让他们提供反馈。

            Database --> <insert code here> --> User Interface

然而,对我而言,失败的部分是如何弥合两个设计之间的差距?我意识到这显然是编码的来源,但到目前为止我还没有用GUI做任何事情。在搜索时,我似乎没有找到任何作为明确的来帮助我(一本书,一个网站,甚至是一个可以遵循的流程)来尝试实际编写应用程序。

我在某种程度上了解Perl,但只将它用于命令行应用程序;我可以使用Win32 :: GUI模块,但我并不真正理解GUI编程和命令行编程之间的差异,只是知道它们不同

是否有关于GUI开发的模型或指南?是否有将应用程序绑定到数据库的特定资源?

2 个答案:

答案 0 :(得分:9)

现在遵循的一般模式是:

Database -> DAL -> BLL -> Controller -> View Model -> UI

其中

DAL == Data Access Layer (aka ORM, Object-Relational mapper)
BLL == Business Logic Layer

通过Google搜索这些术语应该会让您对入门的位置有一个很好的了解。请注意,您并不总是需要每一层。例如,如果应用程序足够小,BLL和视图模型可以是可选的。

另请参阅用于Web开发的模型视图控制器(MVC),以及用于桌面开发的模型视图展示器(MVP)或模型视图ViewModel(MVVM)。

虽然NerdDinner教程是Microsoft / Web特定的,但它在一个地方包含所有这些概念

答案 1 :(得分:0)

Middleware是您可能会看到的另一个术语。

数据库本身可以是几个不同点的组合:

  1. 存储过程 - 这将用于代替直接访问表并提供一个抽象层。
  2. 表或视图 - 直接访问在构建轻量级应用程序时非常有用的列名。
  3. 两者的结合。可以直接访问某些表,而通过存储过程完成其他数据库活动。
  4. UI可以只是一个表示层,也可以包含几个其他层,因为可以使用ASP.Net的层组合(包括C#,HTML和JavaScript)来创建Web应用程序。