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

rom*_*das 8 language-agnostic user-interface implementation

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

使用这个站点作为与程序员和开发人员交互的方式(我不与任何人合作),到目前为止,我已经阅读了问题中推荐的所有数据库设计.所以,我有一个很好的小数据库设计,我打算用SQLite实现.

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

            Database --> <insert code here> --> User Interface
Run Code Online (Sandbox Code Playgroud)

然而,对我而言,失败的部分是如何弥合两个设计之间的差距?我意识到这显然是编码的来源,但到目前为止我还没有用GUI做任何事情.搜索周围,我似乎没有找到任何确定的东西来帮助我(一本书,一个网站,甚至一个过程来跟踪)试图实际编写应用程序.

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

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

Rob*_*vey 9

现在遵循的一般模式是:

Database -> DAL -> BLL -> Controller -> View Model -> UI
Run Code Online (Sandbox Code Playgroud)

哪里

DAL == Data Access Layer (aka ORM, Object-Relational mapper)
BLL == Business Logic Layer
Run Code Online (Sandbox Code Playgroud)

谷歌搜索这些术语应该让你很好地了解从哪里开始.请注意,您并不总是需要每一层.例如,如果应用程序足够小,BLL和视图模型可以是可选的.

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

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