【问题标题】:How do I bridge the gap between my database design and the user interface design? [closed]如何弥合我的数据库设计和用户界面设计之间的差距? [关闭]
【发布时间】:2009-11-12 18:09:53
【问题描述】:

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

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

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

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

但是,对我而言,我最失望的部分是如何弥合这两种设计之间的差距?我意识到这显然是编码的用武之地,但迄今为止我还没有使用 GUI 制作任何东西。环顾四周,我似乎没有找到任何权威来帮助我(一本书、一个网站,甚至是一个可以遵循的过程)来尝试实际编写应用程序。

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

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

【问题讨论】:

  • 您刚刚提出的问题可能会占用计算机科学课程两个或多个学期的时间。
  • 我认为可能。但是,那些学期将基于一本书,对吧? :)
  • @TrueWill - 还没有。 :) 我的问题比这要高一点;我知道对象-关系映射可能即将出现,但我需要先了解一些导致它的概念性内容。

标签: user-interface language-agnostic implementation


【解决方案1】:

现在遵循的一般模式是:

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

在哪里

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

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

另请参阅用于 Web 开发的 Model View Controller (MVC),以及用于桌面开发的 Model View Presenter (MVP) 或 Model View ViewModel (MVVM)。

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

【讨论】:

  • 好点,但我确实相信人们经常尝试将太多的方式抽象到 BLL 中。
  • NerdDinner 看起来很有帮助,谢谢!
【解决方案2】:

Middleware 是您所描述的另一个术语。

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

  1. 存储过程 - 这将用于代替直接访问表并提供抽象层。
  2. 表或视图 - 直接访问列名,如果您正在构建轻量级应用程序,这将非常有用。
  3. 两者的结合。有些表可以直接访问,而其他数据库活动则通过存储过程完成。

UI 可以只是一个表示层,也可以有几个其他层与之关联,因为可以使用 ASP.Net 的层组合,包括 C#、HTML 和 JavaScript 来创建 Web 应用程序。

【讨论】:

    猜你喜欢
    • 2012-09-30
    • 2012-04-20
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2018-05-02
    • 2011-01-13
    相关资源
    最近更新 更多