从数据库模式中自动生成WEB表单
背景
1.背景和相关技术
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已改变人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和数据库管理)。最近,计算机系统被彼此耦合并被耦合到其它电子设备,以形成计算机系统和其它电子设备可以在其上传送电子数据的有线和无线计算机网络。结果,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算组件上。
在许多基于网络的应用程序中,数据访问、数据操纵和数据演示通过对诸如数据库表等底层数据的用户接口来促进。为了标准化功能,用户接口能够以基于web的格式来呈现以使得具有对web浏览器的访问的任何用户都能够与底层数据交互。例如,数据可通过允许用户访问并操纵数据的一个或多个基于web的表单来呈现。
为了创建基于web的表单,表单设计者通常手动设计数据层和演示层。数据层响应于来自演示层的命令与底层数据交互(例如,向数据库发出查询)并为演示层提供数据(例如,数据库查询的结果)。表单设计者还可将诸如过滤、主细节、基于服务器的分页以及编辑、删除和插入命令等其他功能构建到数据层中。例如,数据层可根据其他准则来过滤查询结果以便将合适的数据集返回给演示层。
演示层提供用户与数据层之间的用户接口。演示层接受用户命令并将用户命令(以适当的格式)转发给数据层。演示层还可接受来自数据层的数据并且(以适当的格式)向用户呈现数据。因此,为了访问并操纵数据库中的数据,用户可将web浏览器定向到合适的基于web的表单。
某些web表单开发平台利用部分自动化的技术来生成基于web的表单。例如,至少一个平台支持自动显示、编辑、更新和删除功能。然而,这些平台仍然需要手动活动以获得其他功能。例如,过滤、分页和排序通常即使使用这些开发平台也需要人工干预。因此,即使在使用部分自动化的技术时,仍然可消耗相当多的资源以便手动添加附加功能。
简要概述
本发明涉及用于从数据库模式中自动生成web表单的各方法、系统和计算机程序产品。在某些实施例中,访问对于数据库的数据库映射。该数据库映射从描述该数据库中所包含的数据的配置的模式中生成,该模式包括描述从该数据库的第一表到第二表的外键关系。从该外键关系的存在可以推导出,从该第二表到该第一表的关系也是相关的,即使从该第二表到该第一表的关系并没有在该模式中被明确描述。
对应于该数据库的网站根据该数据库映射自动生成。该网站被配置成提供多个可导航链接的基于web的表单以便与该数据交互。第一基于web的表单用于与来自该第一表的数据交互。该第一基于web的表单配置有到第二基于web的表单的可导航链接,其利用推导出的关系来提供在来自该第二表的行的上下文中的第一表的视图。
在其他实施例中,访问对于数据库的数据库映射。该数据库映射从描述该数据库中所包含的数据的配置的模式中生成。自动生成被配置成查询该数据库中所包括的数据库表的动态查询。该动态查询可响应于用户发起的改变基于web的表单中来自数据库表的记录的排列的命令来执行。该动态查询被配置成请求来自数据库表的、将以其将要被呈现的次序呈现在基于web的表单中的记录,以使得无需查询整张数据库表。
对应于该数据库的网站根据该数据库映射自动生成。该网站包括自动公式化的动态查询以便允许用户自动改变基于web的表单中来自数据库表的记录的排列。
用于诸如插入、删除和更新等其他类型的操作的动态查询也可被公式化并包括在自动生成的web表单中。
在其他实施例中,来自数据库表的记录被转发到web浏览器以使得这些记录可根据第一配置通过基于web的表单来呈现。从web浏览器接收到的用户发起的消息指示通过基于web的表单的记录呈现将被改变为不同的第二配置。响应于该用户发起的消息向数据库发出动态查询。该动态查询请求来自数据库表的、将以其将要被呈现的次序用该不同的第二配置来呈现的记录,以使得无需查询整张数据库表。动态查询在创建对应于数据库的网站时就已经被自动包括在该网站中。
所请求的记录以其将要被呈现的次序来接收,接收到的记录是响应于动态查询接收的。所请求的记录以其将要被呈现的次序被转发到web浏览器以使得所请求的记录可根据不同的第二配置通过基于web的表单来呈现。
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本说明书将是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的手段和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书而变得更加完全明显,或可通过对下文中所述的本发明的实践来获知。
附图简述
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,附图中:
图1示出了有助于从数据库模式中自动生成web表单的示例计算机体系结构。
图2示出了用于生成web表单的示例方法的流程图。
图3示出了用于生成web表单的另一示例方法的流程图。
图4示出了有助于执行具有自动生成的链接的web表单的示例计算机体系结构。
图5A—5E示出了web表单的各示例。
图6示出了用于执行web表单的示例方法的流程图。
详细描述
本发明涉及用于从数据库模式中自动生成Web表单的各方法、系统和计算机程序产品。在某些实施例中,访问对于数据库的数据库映射。该数据库映射从描述该数据库中所包含的数据的配置的模式中自动生成,该模式包括描述从该数据库中的第一表到第二表的外键关系。从该外键关系的存在可以推导出,从该第二表到该第一表的关系也是相关的,即使从该第二表到该第一表的关系并没有在该模式中被明确描述。
对应于该数据库的网站根据该数据库映射来自动生成。该网站被配置成提供多个可导航链接的基于web的表单以便与该数据交互。第一基于web的表单用于与来自该第一表的数据交互。该第一基于web的表单配置有到第二基于web的表单的可导航链接,其利用推导出的关系来提供在来自该第二表的行的上下文中的第一表的视图。
在其他实施例中,访问对于数据库的数据库映射。该数据库映射从描述该数据库中所包含的数据的配置的模式中生成。自动生成被配置成查询该数据库中所包括的数据库表的动态查询。该动态查询可响应于用户发起的改变基于web的表单中来自数据库表的记录的排列的命令来执行。该动态查询被配置成请求来自数据库表的、将以其将要被呈现的次序呈现在基于web的表单中的记录,以使得无需查询整张数据库表。
对应于该数据库的网站根据该数据库映射来自动生成。该网站包括自动公式化的动态查询以便允许用户自动改变基于web的表单中来自数据库表的记录的排列。
用于诸如插入、删除和更新等其他类型的操作的动态查询也可被包括在自动生成的web表单中。
在其他实施例中,来自数据库表的记录被转发到web浏览器以使得这些记录可根据第一配置通过基于web的表单来呈现。从web浏览器接收到的用户发起的消息指示通过基于web的表单的记录呈现将被改变为不同的第二配置。响应于该用户发起的消息向数据库发出动态查询。该动态查询请求来自数据库表的、将以其将要被呈现的次序用该不同的第二配置来呈现的记录,以使得无需查询整张数据库表。该动态查询在创建了对应于该数据库的网站时就被自动包括在该网站中。
所请求的记录以其将要被呈现的次序来接收,接收到的记录是响应于动态查询接收的。所请求的记录以其将要被呈现的次序被转发到web浏览器以使得所请求的记录可根据不同的第二配置通过基于web的表单来呈现。
本发明的各实施例可以包括含有计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。本发明的范围内的各实施例也包括用于承载或其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,计算机可读介质可包括计算机可读存储介质,如RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其它介质。
在本说明书和所附权利要求书中,“网络”被定义为允许在计算机系统和/或模块之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为计算机可读介质。因此,作为示例而非限制,计算机可读介质可包括可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络或数据链路。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。例如,计算机可执行指令可以是二进制代码、诸如汇编语言等中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机等等。本发明也可以在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
图1示出了有助于创建具有自动生成的链接的web表单的示例计算机体系结构100。计算机体系结构100包括数据库101、对象关系映射器106、编译器108和网站生成器111。在某些实施例中,还包括数据库映射器171(可能替代对象关系映射器106和编译器108)。计算机体系结构100中的组件中的每一个都可被连接到网络,诸如局域网(“LAN”)、广域网(“WAN”)、或甚至因特网。因此,各个组件可相互之间,以及对连接至该网络的其他组件收发数据。因此,各组件可以创建消息相关数据并通过网络交换消息相关数据(例如,网际协议(“IP”)数据报和利用IP数据报的其他高层协议,诸如传输控制协议(“TCP”)、远程桌面协议(“RDP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。
如图所示,数据库101包括数据102和模式103。数据102可包括一张或多张表,诸如表151和表152。每张表都可配置有表示该表的不同字段的一个或多个列。每张表都可包括一行或多行数据,其中每一行都包含对应于该表中的每个相应的列的数据字段的值。
模式103定义数据102的结构并且可以用与数据库101兼容的形式语言来描述。例如,模式103可定义数据库101的表以及数据库102的每张表中所包括的数据字段(例如,整数、字符串、键等)。模式103还可定义数据102中的字段和表之间的关系(例如,外键关系)。外键是一张表中标识不同表中的记录的键字段。例如,模式103可定义从表151到表152的外键关系104。即,表151中的键字段标识表152中的记录(通常由外键104K来表示)。
对象关系映射器106被配置成检查模式并将模式转换为代表性可编译代码(例如,C#源代码)。例如,对象关系映射器106可请求、接收、及解析模式103并将包括外键关系104的模式103转换为代表性可编译代码107。代表性可编译代码107可包括表示根据模式103来定义的数据102的表和字段的类和子类的源代码。可编译代码可以用表示包括外键关系104在内的模式103的各部分的元数据例如,字段属性来注释。
编译器108被配置成将可编译代码编译成可执行代码,诸如,动态链接库。例如,编译器108可将可编译代码107编译成动态链接库109。在编译后,动态链接库可保留相应的可编译代码中所包括的元数据注释。因此,可编译代码107中所包括的任何元数据注释也可被包括在动态链接库109中。
一般而言,动态链接库(或其他可执行代码)中的元数据注释可通过反射(reflection)来标识。因此,动态链接库109中的任何元数据注释都可通过反射来标识。数据库映射110可从所标识的元数据注释中创建。数据库映射110可包括对模式103中所包括的数据库101的描述,诸如,外键关系104。
在某些实施例中,利用数据库映射器(可能替代对象关系映射器106和编译器108并可能消除使用反射的需要)。数据库映射器可被配置成直接读取模式并将该模式转换为相应的数据库映射。例如,数据库映射器117可被配置成读取模式103并将模式103转换为数据库映射110。
网站生成器111被配置成接收对于数据库的数据库映射并自动生成网站以便与该数据库交互。例如,网站生成器111可接收数据库映射110并生成网站112以便与数据库102交互。网站112可包括呈现数据的不同的排列以便与数据库101交互的多个网页,诸如网页112a、112b和112c。
一般而言,网站生成器111被配置成在网页中自动包括协助与数据库101的高效且有意义的交互的各种链接。例如,网站生成器111可自动包括使得动态查询被发送至数据库101的网页链接。动态查询可用于请求来自表的、将以其将要被呈现的次序呈现在基于web的表单中的记录,而不必查询整张表。将动态查询与网页链接相关联有助于响应于用户发起的选择一链接的命令(例如,当用户界面光标悬停在一链接上时“点击”鼠标按钮)执行动态查询。
例如,网页链接可被自动包括在网页中以便按照指定的列来对表的记录进行排序。响应于用户发起的选择一软链接的命令,可自动向数据库101发出引起对适当的记录的动态排序查询(例如,排序查询114)和/或执行其他适当的数据库操作的适当的代码。可返回该适当的记录并且更改所呈现的记录的排列以反映用户所请求的排序(例如,按照顾客标识符字段来排序)。
网页链接也可被自动包括在网页中以便在不同的记录页面之间来回移动(分页)。响应于用户发起的选择一分页链接的命令,可以向数据库101自动发出对适当的记录的动态分页查询(例如,分页查询113)。可返回适当的记录且更改所呈现的记录排列以反映用户所请求的分页(例如,从一组记录的第2页移至第5页)。
以下伪代码表示所发出的对来自定单(Order)表的记录进行排序和/或分页的动态查询的示例:
public ICollection<Orders> GetOrders(string sortExpression,int
startRowIndex,int maximumRows)
{
return db.Orders.SortAndPage(sortExpression, startRowIndex,
maximumRows);
}
网站生成器111还被配置成从数据库映射中所包括的模式信息中推导出数据库中的表之间的关系(即使在该关系并没有在该模式信息中明确定义时)。由此,即使模式103并未明确定义(或以其他方式表示)关系,网站生成器111也可推导出数据102中的表之间的关系。例如,外键关系104定义表151中的一字段指向表152中的记录。从外键关系104中,网站生成器111可推导出从表152到后面的表151的关系(推导出的关系153),即使没有其他外键(或其他)关系在模式103中被明确定义。
网页链接也可被自动包括在网页中以便移至推导出的关系的上下文中的不同的数据视图或数据排列。响应于用户发起的选择推导出的关系的上下文中的链接的命令,可自动向数据库101发出引起对适当的记录的动态上下文查询(例如,上下文查询117)和/或执行其他适当的数据库操作的适当的代码。可返回适当的记录且更改所呈现的记录排列以反映用户所请求的上下文(例如,从所有定单的视图切换到指定顾客的定单的视图)。
以下伪代码表示可用于查询来自顾客(Customer)表的行的上下文中的定单表的动态查询的示例:
public ICollection<Orders>GetOrdersByCustomer(int customerID)
{
Database db=new Database();
return db.Customers.Where(x=>x.CustomerID ==
customerID).SelectMany(x=>x.Orders);
}
网页链接也可被自动包括在网页中以便插入、删除或修改数据。响应于用户发起的选择删除、修改或添加数据的链接的命令,可以自动向数据库101发出引起动态查询和/或执行其他适当的数据库操作的适当的代码。例如,网页可被配置成发出添加查询、修改查询和删除查询中的任一个。可返回和/或删除适当的记录且更改所呈现的记录的排列以反映用户操作(例如,删除、修改、添加记录等)。
以下伪代码表示用于从定单表删除一行的动态查询的示例:
public static void Delete(Order x)
{
Database db=new Database();
db.Orders.Remove(x);
db.SubmitChanges();
}
以下伪代码表示用于修改定单表中的一行的动态查询的示例:
public static void Update(Order original_x,Order x)
{
Database db=new Database();
db.Orders.Attach(original_x);
original_x.CustomerID=x.CustomerID;
original_x.EmployeeID=x.EmployeeID;
original_x.OrderDate=x.OrderDate;
original_x.RequiredDate=x.RequiredDate;
original_x.ShippedDate=x.ShippedDate;
original_x.ShipVia=x.ShipVia;
original_x.Freight=x.Freight;
original_x.ShipName=x.ShipName;
original_x.ShipAddress=x.ShipAddress;
original_x.ShipCity=x.ShipCity;
original_x.ShipRegion=x.ShipRegion;
original_x.ShipPostalCode=x.ShipPostalCode;
original_x.ShipCountry=x.ShipCountry;
db.SubmitChanges();
}
以下伪代码表示用于将一行添加到定单表的动态查询的示例:
//该方法在表中插入一新记录。
//改变该方法以更改如何插入记录。
public static void Insert(Order x)
{
Database db=new Database();
db.Orders.Add(x);
db.SubmitChanges();
}
一个网页中的链接可被配置成使得另一网页中的动态查询被执行。例如,选择网页112b中的链接116可使得上下文118作为对上下文查询117的输入来提供。上下文查询117然后可发出上下文118中的请求记录。
各种不同查询的组合也可被包括在网页或链接的网页中。不同查询的组合可互操作以便例如响应于用户发起的命令来向数据库101查询适当的数据。
自动构建网站的发起可通过命令行工具来促进。例如,在提示131处用户可发出命令132。命令132包括构建模块的名称(例如,“buildsite”)、所生成的网站将要存储的目录(例如,“/webpagedir”)、正在构建的网站所对应的数据库(“/database”)以及可用于访问该网站的虚拟目录(“”/vdir)。计算机体系结构100中诸如因特网信息服务(“IIS”)等组件可将虚拟目录映射到URL。可任选数据库凭证也可被包括在命令132中。或者,可使用集成的安全性来缓解对命令132中所包括的凭证的需求。也可使用其他图形工具来发起对应于数据库的网站的构建。
图2示出了用于创建web表单的示例方法200的流程图。方法200将关于计算机体系结构100中的组件和数据来描述。
方法200包括访问对于数据库的数据库映射的动作,该数据库映射已经从描述该数据库中所包含的数据的配置的模式中生成,该模式包括描述从该数据库的第一表到第二表的外键关系(动作201)。例如,网站生成器111可访问从描述数据库101的配置的模式103中生成并且描述从表151到表152的外键关系104的数据库映射110。
方法200包括从外键关系的存在推导出从该第二表到该第一表的关系也是相关的,即使从该第二表到该第一表的关系并没有在该模式中被明确描述的动作(动作202)。例如,网站生成器111可以从外键关系104推导出从表152到表151的关系也是相关的,即使从表152到表151的关系并没有在模式103中被明确描述。
可以自动公式化被配置成向数据库101查询推导出的关系153的上下文中的数据的上下文查询117。上下文查询117可响应于用户发起的改变基于web的表单中来自表151的记录的排列的命令来执行。上下文查询117可被配置成请求来自表151的、将以推导出的关系153的上下文呈现在基于web的表单中的记录。
方法200包括根据该数据库映射自动生成对应于该数据库的网站的动作(动作203)。该网站被配置成提供多个可导航链接的基于Web的表单以便与该数据交互。第一基于Web的表单用于与来自该第一表的数据交互。该第一基于web的表单配置有到第二基于web的表单的可导航链接,其利用推导出的关系来提供在来自该第二表的行的上下文中的第一表的视图。
例如,网站生成器111可根据数据库映射110来创建网站112。网站112包括可导航链接的网页112a、112b、112c等以便与数据102交互。网页112b可被更具体地配置为与表151交互并可包括到网页112c的链接。链接116利用推导出的关系153来提供在来自表152的行的上下文中的表151的视图。例如,可选择链接116以便从表151中的所有定单的视图转换到由表152中的行来表示的指定顾客的所有定单的视图。(可响应于选择链接116向数据库101发出适当的动态查询以检索对应于指定顾客的所有定单)。
图3示出了用于创建web表单的另一示例方法的流程图。图2示出了用于创建web表单的示例方法200的流程图。方法300将关于计算机体系结构100中的组件和数据来描述。
方法300包括访问对于数据库的数据库映射的动作,该数据库映射已经从描述该数据库中所包含的数据的配置的模式中生成(动作301)。例如,网站生成器111可访问从描述数据库101中所包含的数据的配置的模式103中生成的数据库映射110。
方法300包括自动公式化被配置成查询数据库中所包括的数据库表的动态查询的动作(动作302)。该动态查询可响应于用户发起的改变基于web的表单中来自数据库表的记录的排列的命令来执行。该动态查询被配置成请求来自数据库表的、将以其将要被呈现的次序呈现在基于web的表单中的特定记录,以使得无需查询整张数据库表。
例如,网站生成器111可自动公式化分页查询113或排序查询114。分页查询113和排序查询114中的任一个可响应于用户发起的改变基于web的表单中来自表151的记录的排列的命令来执行。分页查询113或排序查询114可被配置请求来自表151的、将以其将要被呈现的次序呈现在基于web的表单中的特定记录,以使得无需查询整个表151。
方法300包括根据数据库映射自动生成对应于该数据库的网站的动作(动作303)。该网站包括自动公式化的动态查询以便允许用户自动改变基于web的表单中来自数据库表的记录的排列。例如,网站生成器111可根据数据库映射110来自动生成网站112。网页112a包括分页查询113,并且网页112b包括排序查询114,这就允许用户自动改变基于web的表单中来自表151的记录的排列。
图4示出了有助于执行具有自动生成的链接的web表单的示例计算机体系结构400。如图所示,计算机体系结构400包括数据库101、web服务器401和web浏览器402。web浏览器402被配置成为用户提供用户界面以便与由web服务器401提供的内容,包括自动生成的网站112交互。web浏览器402可接收用户输入并响应于接收到的用户输入向web服务器401提交基于web的命令。例如,web浏览器402可接收用户请求411并响应于用户请求411提交URL403。web浏览器401也可接收数据库记录和格式化信息,并且根据格式化的信息来将数据库记录呈现在基于web的表单中。例如,web浏览器402可接收包括记录406和格式化407的网页112e,并且可根据格式化407来将记录406呈现在基于web的表单412中。
web服务器401被配置成从web浏览器接收基于web的命令并且响应于接收到的基于web的命令标识并访问内容。例如,web服务器401可接收URL403并且响应于URL 403访问数据102。(诸如IIS等组件可将URL 403映射到数据102的位置)。web服务器401可执行网站112中所包括的动态查询以便请求来自数据库101的记录。例如,web服务器401可执行分页查询113以便请求来自表151的新一页的记录。web服务器401可从数据库101接收内容并将该内容返回给web浏览器402。例如,web服务器401可接收记录406(表示来自表151的新一页的记录)。web服务器401可在网页112e(自动生成的网站112中的另一页面)中包括记录406和格式化407。web服务器401可将网页112d发送到web浏览器402。
图5A—5E示出了web表单500的各示例。图5A描绘了基于web的表单的主菜单。图5A中的每个项目都可表示到数据库中的表的链接。例如,项目501可表示到顾客表的链接,项目502可表示到定单表的链接,且项目503可表示到产品表的链接。
选择图5A中的项目可使得来自链接的表的记录被呈现。例如,选择项目502可使得web服务器401发出对来自定单表的记录的查询。图5B描绘了响应于对项目502的选择所呈现的定单表的一部分。行502a、502b、502c、502d、和502e与定单表中的各行相对应。与每一行相关联的编辑和删除链接允许用户修改或删除该行。列513表示可被选择以呈现相应定单的细节的不同排列的查看细节链接。
页511表示可用的定单的页数。对指定页(例如,第3页)的链接的选择可使得对将出现在该页的记录的分页查询被发出。图5B中的各列包括可用于对所呈现的行进行排序的链接。例如,可使用链接531、532、533、534、535和536来分别按照产品名称、产品ID、定单ID、顾客ID、单位价格和已送货单位对定单表进行排序。选择(例如,点击)链接可使得各行在指定列的上下文中以升序排序。再次选择(例如,再次点击)该链接可使得各行在指定列的上下文中以降序排序。例如,选择链接532可使得各行按照产品ID值以升序排序。再次选择链接532使得各行按照产品ID值以降序排序。选择指定列的链接(例如,产品ID列的链接532)可使得对所排序的记录的集合发出根据由用户的动作指定的排序准则的动态排序查询。
当选择一行的编辑链接时。可呈现该行的值的可编辑字段。例如,选择行502a的编辑链接可使得图5C被呈现。所呈现的可编辑字段可包括该字段的当前值。当一字段表示外键关系时,可提供可用外键值的下拉列表。例如,产品ID(来自产品表)的可用值可被呈现在下拉列表521中,定单ID(来自定单表)的可用值可被呈现在下拉列表522中,顾客ID(来自顾客表)的可用值可被呈现在下拉列表523中。
可以在可编辑字段中选择和/或更改值。如果要实现所输入的编辑,则可选择(例如,点击)更新链接。如果不要选择所输入的编辑,则可选择(例如,点击)取消链接。
在列中,值也可以是链接。这些链接可表示到具有到另一表的外键关系的其他表的链接。例如,在产品ID列中,所呈现的值也可包括到产品表的链接。用户可选择(例如,点击)一链接以便被带到所选项目的更详细的信息。例如,可选择行502b中的顾客ID列中的链接以查看关于对应于顾客ID值8的顾客的更详细的信息。图5D是对应于顾客ID值8的顾客的更详细的信息的示例。
如图所示,图5D呈现了包括公司名、地址、邮编等更详细的信息。图5D还包括链接512。选择链接512可使得对顾客ID值8的上下文(XYZ公司)中的定单表发出动态查询。该动态查询的结果可被呈现在另一基于web的表单中。例如,图5E描绘了顾客ID值8的上下文中的定单的表。即,行502f、502b、502g和502h表示对应于顾客ID值8的定单。
图6示出了用于执行web表单的示例方法600的流程图。方法600将关于计算机体系结构400和web表单500中的组件和数据来描述。
方法600包括将来自数据库表的记录转发到web浏览器以使得记录可根据第一配置通过基于web的表单来呈现的动作(动作601)。例如,web服务器401可转发来自表151的记录以使得记录可通过图5B中的web表单被呈现在web浏览器402处。
方法600包括从web浏览器接收指示通过基于web的表单的记录呈现将被改变为不同的第二配置的用户发起的消息的动作(动作602)。例如,web服务器401可以从web浏览器402接收URL 403。URL 403指示通过图5B中的web表单的记录呈现将被改变为不同的第二配置。
方法600包括响应于用户发起的消息向数据库发出动态查询的动作(动作603)。该动态查询请求来自数据库表的、将以其将要被呈现的次序用不同的第二配置来呈现的记录,以使得无需查询整张数据库表。该动态数据库查询在创建网站112时就被自动包括在网站112中。该动态查询也可与不同的数据库表之间的推导出的关系相关联。
例如,web服务器401可以向数据库101发出查询404。查询404可以是分页查询、排序查询、上下文查询、或网站生成器111自动将其包括在网站112中的任何其他类型的动态查询。查询404可查询数据库101中的指定记录而不查询整张表。这些记录可以是关于来自当前表的不同页记录、关于来自当前表的记录的已排序页、或关于来自另一张表的行的上下文中的来自当前表的记录。
方法600包括以其将要被呈现的次序接收响应于该动态查询的所请求的记录的动作(动作604)。例如,web服务器401可接收表示对查询404的响应的记录406。
方法600包括将所请求的记录以其将要被呈现的次序转发到web浏览器以使得所请求的记录可根据不同的第二配置通过基于web的表单来呈现的动作(动作605)。例如,web服务器401可将包括记录406和格式化407的网页112e发送至web浏览器402。网页112e可表示来自当前表的记录的不同页、来自当前表的已排序记录、来自另一张表(例如,图5D中的表)的行的上下文中的来自当前表的记录等。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效技术方案的含义和范围内的所有改变应被权利要求书的范围涵盖。