当前位置: 首页 > news >正文

721SJBH笔记本电脑销售网站

摘   要

    随着中国市场经济的日趋成熟,中国企业面对的竞争压力也越来越大,企业要想生存,就必须充分利用信息化手段来提高管理效率及市场响应速度。电子商务是在互联网开放的网络环境下,基于浏览器/服务器应用方式,实现消费者的网上购物、商户之间的网上交易和在线电子支付的一种新型的商业运营模式。电子商务做为一种独立的经济形态,已初具规模,一些电子商务网站的成立,给人们的生活带来了巨大的影响。              

笔记本销售网站是一种电子商务类网站,能提供一种用户足不出户就能选购自己喜欢的笔记本电脑的快捷购物方式。销售网站一般都需要具有对商品介绍的新闻发布系统和用购物车选购商品以及查询商品得功能。根据这些销售网站的这些功能采用的是Windows XP+ASP+SQL Server2000的技术进行开发,最后比较好的的实现了一个在线购物网站应具备的基本功能,并且界面友好,操作简单。

关键字:Web;电子商务;网络化 ;笔记本

 

Abstract

As China's market economy matures, Chinese enterprises face increasing pressure of competition, enterprises are to survive, we must make full use of information The means to improve management efficiency and market responsiveness. E-commerce is the Internet an open network environment, based on browser / server applicationsWays to achieve the consumer's online shopping, online transactions between merchants and online electronic payment of a new business model. E-commerce As an independent economic form, has taken shape, the establishment of a number of e-commerce sites, to people's lives had a tremendous impact.

 The design and development of an ASP.NET-based baby products e-commerce site, it implements the release of maternal and child products, browse and purchase capabilities, After analysis, the design for Microsoft Visual Studio 2008 development tools for the main front toASP.NET as the development of technology, after Single database using Microsoft's powerful relational data in SQL Server2000, the system is simple, friendly interface, good flexibility and system security  All high, running stable.
Keywords: Web; e-commerce; network; Computer

目  录

第一章 绪   论... 1

1.1  需求分析... 1

1.2系统开发原则... 1

1.2.1普通用户对系统的要求... 1

1.2.2 管理员对系统的要求... 2

第二章 相关技术阐述... 3

2.1 .NET Framework和ASP.NET. 3

2.2 SQL Server 2000介绍... 6

第三章 系统分析与总体设计... 9

3.1 系统功能分析... 11

3.2  系统总体结构设计... 11

第四章 笔记本网站详细设计与实现... 12

4.1 数据库设计... 12

4.1.1 数据库设计概述... 12

4.1.2数据库表详细设计... 12

4.2 系统详细实现... 18

4.2.1系统主页面的实现... 18

4.2.2购物车页面的实现... 18

4.2.3后台产品信息维护... 19

第五章 笔记本网站系统应用与测试... 20

5.1系统测试... 20

5.2 单元测试实例... 21

参考文献... 22

致   谢... 23

第一章 绪   论

1.1  需求分析

20世纪末,随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。个性化已逐渐成为当今Web应用的潮流。据估计,目前Internet上已有上百万个Web 站点,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的发展十分重要。

网上笔记本销售网站是目前Internet上广泛使用的在线系统之一。网上笔记本销售网站要实现的功能非常多。首先,为了销售笔记本电脑,给电脑做广告是其中一部分,系统必须在醒目的位置给出笔记本电脑的信息,包括笔记本电脑的名称、编号、价格以及笔记本电脑的图片介绍,并对浏览次数多和订购数量多的笔记本电脑在醒目位置向用户进行推荐。同时,笔记本电脑销售过程中还需要对用户的购物车进行管理,允许用户执行如取消订购,送收银台等操作。最后,系统必须完成结帐的功能,从而完成整个购物的流程。其次,因为在线销售系统中笔记本电脑的种类很多,某个用户想要找到自己需要的笔记本电脑就比较困难了,所以系统提供了查找的功能,将电脑分类浏览,给用户带来方便。另外,为了保证数据库的安全,及电脑交易的顺利进行,系统还需要对用户进行管理,最简单的一点就是需要用户注册,进行身份的验证。最后,系统特别提供了数据库管理的功能,允许具有管理权限的人员对系统数据库进行操作,包括添加、删除、修改记录等等。

网上笔记本销售网站主要是用ASP.NET 和SQL 来完成系统设计的。Microsoft推出的ASP.NET技术可以开发出满足企业、组织和个人需求的各种站点。ASP 通过服务器端脚本的方式实现服务器端动态网页,支持使用ActiveX 组件扩展其功能,因此借助ASP.NET,用户可以开发出功能强大的站点。同时Web 已经不再局限于仅仅提供大量的信息服务这是最,Web 技术的发展,使得那些具有交互动态页面、有条理的数据库查询、丰富信息内容的网页成为最吸引人的网页。数据库技术为动态网页的发展提供了功能强大的后台数据处理,而SQL Server 数据库是目前最流行的关系型数据库系统之一,由于他对服务器的要求较低,因此也是最适合大众安装并上机实践的完整的数据库管理系统。数据库技术与网站的结合是当今Web 技术的一个热点。有了数据库的支持,可以扩展网页的功能,可以方便地设计出交互式页面,可以构造功能更加强大的后台管理系统,可以为网站的更新、维护提供极大的方便。

1.2系统开发原则

1.2.1普通用户对系统的要求

(1)系统要有友好的界面,并提供商品搜索和商品分类浏览,使用户可以方便而快速地查询到自己需要的电脑。

(2)有健全的售后投诉管理系统,当用户希望与本站就有关电脑质量问题或者服务问题进行协商时,可以通过客户投诉将所要协商的内容提交给本站。

1.2.2 管理员对系统的要求

(1)系统能够提供一个友好的管理员界面,使管理员可以对系统数据库中的数据进行有效的管理。

(2)系统能够提供一个友好的订单管理界面,管理员可以对用户订单信息进行处理。

(3)提供一个友好的新品入库界面,管理员可以对新品进行添加处理。

(4)提供一个友好的商品管理界面,管理员可以对电脑资料进行修改和删除处理。

(5)提供一个友好的用户管理界面,管理员可以对用户进行信息查看和删除管理。

因此,企业需要重新认识市场、消费者以及自身市场定位,正确认识电子商务技术在企业中的重要地位,以少量的时间和资金建立企业信息门户网站并架设一定范围的商务网络,以此来制定长远发展战略,使企业与顾客间的经济活动变得更灵活、更主动。

第二章 相关技术阐述

2.1 .NET Framework和ASP.NET

.NET Framework 是支持生成和运行下一代应用程序和 XML Web Services 的内部 Windows 组件。.NET Framework 旨在实现下列目标:

(1)提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的。

(2)提供一个将软件部署和版本控制冲突最小化的代码执行环境。

(3)提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境。

(4)提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。

(5)使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致。

(6)按照工业标准生成所有通信,以确保基于.NET Framework的代码可与任何其他代码集成。

.NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework 类库。公共语言运行库是 .NET Framework 的基础。您可以将运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET Framework 的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,也包括基于 ASP.NET 所提供的最新创新的应用程序(如 Web 窗体和 XML Web Services)。

.NET Framework 可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NET Framework 不但提供若干个运行库宿主,而且还支持第三方运行库宿主的开发。

例如,ASP.NET 承载运行库为托管代码提供可伸缩的服务器端环境。ASP.NET 直接使用运行库以启用 ASP.NET 应用程序和 XML Web Services。

Internet Explorer 是承载运行库(以 MIME 类型扩展的形式)的非托管应用程序的一个示例。使用 Internet Explorer 承载运行库使您能够在 HTML 文档中嵌入托管组件或 Windows 窗体控件。以这种方式承载运行库使得托管移动代码(类似于 Microsoft® ActiveX® 控件)成为可能,不过它需要进行重大改进(如不完全受信任的执行和独立的文件存储),而这种改进只有托管代码才能提供。

公共语言运行库的功能:公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的。

至于安全性,取决于包括托管组件的来源[4](如 Internet、企业网络或本地计算机)在内的一些因素,托管组件被赋予不同程度的信任。这意味着即使用在同一活动应用程序中,托管组件既可能能够执行文件访问操作、注册表访问操作或其他须小心使用的功能,也可能不能够执行这些功能。

运行库强制实施代码访问安全。例如,用户可以相信嵌入在网页中的可执行文件能够在屏幕上播放动画或唱歌,但不能访问他们的个人数据、文件系统或网络。这样,运行库的安全性功能就使通过 Internet 部署的合法软件能够具有特别丰富的功能。

运行库还通过实现称为通用类型系统 (CTS) 的严格类型验证和代码验证基础结构来加强代码可靠性。CTS 确保所有托管代码都是可以自我描述的[8]。各种 Microsoft 和第三方语言编译器生成符合 CTS 的托管代码。这意味着托管代码可在严格实施类型保真和类型安全的同时使用其他托管类型和实例。

此外,运行库的托管环境还消除了许多常见的软件问题。例如,运行库自动处理对象布局并管理对对象的引用,在不再使用它们时将它们释放。这种自动内存管理解决了两个最常见的应用程序错误:内存泄漏和无效内存引用。

运行库还提高了开发人员的工作效率。例如,程序员可以用他们选择的开发语言编写应用程序,却仍能充分利用其他开发人员用其他语言编写的运行库、类库和组件。任何选择以运行库为目标的编译器供应商都可以这样做。以 .NET Framework 为目标的语言编译器使得用该语言编写的现有代码可以使用 .NET Framework 的功能,这大大减轻了现有应用程序的迁移过程的工作负担[5]。

尽管运行库是为未来的软件设计的,但是它也支持现在和以前的软件。托管和非托管代码之间的互操作性使开发人员能够继续使用所需的 COM 组件和 DLL。

运行库旨在增强性能。尽管公共语言运行库提供许多标准运行库服务,但是它从不解释托管代码。一种称为实时 (JIT) 编译的功能使所有托管代码能够以它在其上执行的系统的本机语言运行。同时,内存管理器排除了出现零碎内存的可能性,并增大了内存引用区域以进一步提高性能。

最后,运行库可由高性能的服务器端应用程序(如 Microsoft  SQL Server  和 Internet 信息服务 (IIS))承载。此基础结构使您在享受支持运行库宿主的行业最佳企业服务器的优越性能的同时,能够使用托管代码编写业务逻辑[7]。

NET Framework 类库:.NET Framework 类库是一个与公共语言运行库紧密集成的可重用的类型集合。该类库是面向对象的,并提供您自己的托管代码可从中导出功能的类型。这不但使 .NET Framework 类型易于使用,而且还减少了学习 .NET Framework 的新功能所需要的时间。此外,第三方组件可与 .NET Framework 中的类无缝集成。

例如,.NET Framework 集合类实现一组可用于开发您自己的集合类的接口。您的集合类将与 .NET Framework 中的类无缝地混合[9]。

正如您对面向对象的类库所希望的那样,.NET Framework 类型使您能够完成一系列常见编程任务(包括诸如字符串管理、数据收集、数据库连接以及文件访问等任务)。除这些常见任务之外,类库还包括支持多种专用开发方案的类型。例如,可使用 .NET Framework 开发下列类型的应用程序和服务:

控制台应用程序。

Windows GUI 应用程序(Windows 窗体)。

ASP.NET 应用程序。

XML Web Services。

Windows 服务。

例如,Windows 窗体类是一组综合性的可重用的类型,它们大大简化了 Windows GUI 的开发。如果要编写 ASP.NET Web 窗体应用程序,可使用 Web 窗体类。

ASP.NET 是使开发人员能够使用 .NET Framework 开发基于 Web 的应用程序的宿主环境。但是,ASP.NET 不止是一个运行库宿主;它是使用托管代码开发网站和通过 Internet 分布的对象的完整结构。Web 窗体和 XML Web Services 都将 IIS 和 ASP.NET 用作应用程序的发布机制,并且两者在 .NET Framework 中都具有支持类集合。

XML Web Services 作为基于 Web 的技术的重要发展,是类似于常见网站的分布式服务器端应用程序组件。但是,与基于 Web 的应用程序不同,XML Web Services 组件不具有 UI 并且不以浏览器(如 Internet Explorer 和 Netscape Navigator)为目标。XML Web Services 由旨在供其他应用程序使用的可重用的软件组件组成,所谓的其他应用程序包括:传统的客户端应用程序,基于 Web 的应用程序,甚至是其他 XML Web Services。因此,XML Web Services 技术正迅速地将应用程序开发和部署推向高度分布式 Internet 环境[10]。

如果您使用过 ASP 技术的早期版本,很快就会注意到 ASP.NET 和 Web 窗体提供的改进。例如,您可以用支持 .NET Framework 的任何语言开发 Web 窗体页。此外,您的代码不再需要与 HTTP 文本共享同一个文件(尽管如果您愿意,代码还可以继续这样做)。Web 窗体页用本机语言执行,这是因为与所有其他托管应用程序一样,它们充分利用运行库。与此相对照,非托管 ASP 页始终被写成脚本并解释。ASP.NET 页比非托管 ASP 页更快、更实用并且更易于开发,这是因为它们像所有托管应用程序一样与运行库进行交互。

.NET Framework 还提供类和工具的集合来帮助开发和使用 XML Web Services 应用程序。XML Web Services 是基于 SOAP(一种远程过程调用协议)、XML(一种可扩展的数据格式)和 WSDL(Web 服务描述语言)这些标准生成的。基于这些标准生成 .NET Framework 的目的是为了提高与非 Microsoft 解决方案的互操作性[11]。

ASP.NET是一种建立在通用语言上的程序构架,能被用于一台服务器来建立强大的应用程序,它具有很强大的优势[1]。

(1)执行效率大幅度提高。ASP.NET是把基于通用语言的程序在服务器上运行,这样的执行效果当然比一条一条解释强的多。

(2)强大性和适应性。ASP.NET可以运行在Web应用软件开发者的几乎全部的平台上,通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.NET的Web应用中。在ASP.NET环境中,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,目前已经支持的有C#,VB等。

(3)简单性和易学性。ASP.NET使一些平常任务的运行、分布系统和网站配置变得非常简单。

(4)高效可管理性。ASP.NET使用基础的字符,分级的配置系统,使服务器环境和应用程序的设置更加简单。由于配置信息都保存在简单文本中,因此新的设置一般都不需要启动本地的管理员工具就可以实现。

2.2 SQL Server 2000介绍

Microsoft SQL Server数据库的内置语言是由美国标准局(ANSI)和国际标准组织(ISO)所定义的SQL语言,微软公司对它进行了部分扩充而成为作业用SQL(Transact-SQL)。

SQL Server 2000降低了管理系统、.NET架构和Visual Studio  Team System的时间和成本,使得开发人员可以开发强大的下一代数据库应用程序。

(一)基于政策的管理

作为微软正在努力降低公司的总成本所作的工作的一部分,SQL Server 2008推出了陈述式管理架构(DMF),它是一个用于SQL Server数据库引擎的新的基于策略的管理框架。陈述式管理提供了以下优点:

· 遵从系统配置的政策

· 监控和防止通过创建不符合配置的政策来改变系统

· 通过简化管理工作来减少公司的总成本

· 使用SQL Server 管理套件查找遵从性问题

 DMF是一个基于政策的用于管理一个或多个SQL Server 2008实例的系统。要使用DMF,SQL Server政策管理员使用SQL Server 管理套件创建政策,这些政策管理服务器上的实体,例如SQL Server的实例、数据库、和其它SQL Server对象。DMF由三个组件组成:政策管理、创建政策的政策管理员,和显式管理。管理员选择一个或多个要管理的对象,并显式检查这些对象是否遵守指定的政策,或显式地使这些对象遵守某个政策[13]。

自动管理

政策管理员使用下面的执行模式之一,使政策自动执行:

· 强制——使用DDL触发器阻止违反政策的操作

· 对改动进行检查——当一个与某个政策相关的改动发生时,使用事件通知来评估这个政策

· 检查时间表——使用一个SQL Server Agent 工作定期的评估一个政策

(二)改进了安装

 SQL Server 2000对SQL Server的服务生命周期提供了显著的改进,它重新设计了安装、建立和配置架构。这些改进将计算机上的各个安装与SQL Server 软件的配置分离开来,这使得公司和软件合作伙伴可以提供推荐的安装配置。

 

(三)加速开发过程

SQL Server提供了集成的开发环境和更高级的数据提取,使开发人员可以创建下一代数据应用程序,同时简化了对数据的访问。

1) ADO.NET实体框架

在数据库开发人员中的一个趋势是定义高级的业务对象,或实体,然后他们可以将它们匹配到数据库中的表和字段,开发人员使用高级实体例如“客户”或“订单”来显示背后的数据。ADO.NET 实体框架使开发人员可以以这样的实体来设计关系数据。在这一提取级别的设计是非常高效的,并使开发人员可以充分利用实体关系建模。

2) 语言级集成查询能力

微软的语言级集成查询能力(LINQ)使开发人员可以通过使用管理程序语言例如C#或Visual Basic.NET,而不是SQL语句来对数据进行查询。LINQ 使可以用.NET 框架语言编写的无缝和强大的面向集合的查询运行于ADO.NET(LINQ到SQL),ADO.NET 数据集(LINQ到数据集),ADO.NET 实体框架(LINQ到实体),和到实体数据服务匹配供应商。SQL Server 2000提供了一个新的LINQ到SQL供应商,使得开发人员可以直接将LINQ用于SQL Server 2000的表和字段[14]。

CLR集成和ADO.NET对象服务

ADO.NET 的对象服务层使得可以进行具体化检索、改变跟踪、和实现作为公共语言运行时(CLR)的数据的可持续性。开发人员使用ADO.NET 实体框架可以通过使用由ADO.NET 管理的CLR对象对数据库进行编程。SQL Server 2008提供了提高性能和简化开发过程的更有效的和最佳的支持。

3) Service Broker可扩展性

SQL Server 2000继续加强了Service Broker 的能力。

 · 会话优先权——使你可以配置优先权,使得最重要的数据会第一个被发送和进行处理。

· 诊断工具——诊断工具提高了你开发、配置和管理使用了Service Broker的解决方案的能力,例如在应用程序部署之前诊断分支丢失情况或配置不正确的安全问题。

第三章 系统分析与总体设计

⑴系统开发原则

①面向用户的观点

管理系统是为用户开发研制的,用户是系统的最终使用者和评价者,所以在管理系统的开发设计的过程中,我们树立了从用户的寻求出发,面向用户,一切为了用户的观念,在分析与设计系统的前期,为了保证系统的功能的完善曾与公司员工接触,了解他们的要求,同时结合计算机管理的特点,在与用户共同商讨的基础上,融合我们的设计观点和现代管理的思想和模式,以便改进和提高管理工作的速度和质量 。

②严格按阶段进行

系统的开发设计是一项较大的工程,所以应该将整个信息系统的开发设计过程划分为若干阶段,相应的阶段又要分为若干个不同的步骤,每个阶段和步骤都要有明确的工作任务和目标。这种有序的组织安排,条例清楚、层次分明,便于计划的制定和控制,且为后续工作的进行奠定了坚实的基础,提高了工作效率和质量。

③采用系统的观点处理

在系统分析阶段,在对原系统进行全面调查和分析的基础上,构造系统的最佳逻辑模型,使用户对将来完整系统的轮廓有个初步的了解和认识,以便及时和用户进行交流和探讨,不断提高系统的完善性。在此基础上进行系统的物理实现和设计,切实完成逻辑模型的具体功能。逻辑设计和物理实现二者是相辅相成、密不可分的,这样使系统的设计更加稳妥合理。

④采用模块化设计方法

系统模块化设计方法是从计算机实现的角度出发对整个系统进行审核和校验,将整个系统划分为不同的功能模块,实现系统的一个特定功能。各个功能模块之间具有相对独立性,便于整个系统的设计、实施、维护和扩充。这种模块化结构设计方法,为整个系统顺利进行奠定了基础。

⑤整个系统的设计主要采用快速原形法

快速原形法(RPP-Rapid Protégé Ping )是管理信息系统设计的一个重要方法。它是根据用户提出的需求,由用户和开发者共同确定系统的基本要求和主要功能,并在一个较短的时间内建立一个实验性的、简单的信息系统模型,通过用户不断提出的意见和建议,对模型进行不断的修改和完善,直到用户比较满意为止,以便形成一个相对稳定、较为理想的管理信息系统。该方法的主要优点:

ⅰ 脉络清楚,所有问题都围绕一个模型展开,使彼此之间联系紧密。

ⅱ 有助于发现用户需求,通过对原形和用户接触,能够启发开发人员去挖掘问题,从而不断的修正、完善,最终得到一个理想的系统。

ⅲ系统开发效率高,此方法的开发周期短、使用灵活、容易修改,这对于管理体制不够稳定的系统更加适合。

ⅳ系统的可扩展性好,由于此方法是在原型应用中不断发展完善和修改的,所以有较强的扩展性。

⑵系统设计要点

  •  统一开发基本目标

鉴于笔记本网站的特殊性,本系统的主要开发目标是符合信息浏览需要的实用性,实现信息管理的计算机化和现代化,实现系统对景点信息的及时管理和对新闻的更新的规范化、合理化、简单化、统一化,保证数据处理、存储的、传送安全性和快捷性,提高工作效率和工作质量。

②系统设计语言

系统功能模块的实现利用了面向对象的Visual C#高级编程语言,使系统数据的收集、处理、存储、和传送更加方便、快捷,提高整个系统的运行速度和工作效率。网站客户端浏览的设计采用ASP.NET技术、XML技术、Web Service技术和Javascript脚本语言,并且结合了.Net Framework的基础构架,服务器端。

3 统开发最终目标

本系统的设计和运行目标是为了满足用户对笔记本信息的浏览的需求,实现景点信息及时管理和更新的规范化、合理化、简单化、统一化,保证用户能够及时地浏览到最新的笔记本资讯。

④系统代码设计说明

在进行代码设计时,遵循了以下原则:

唯一性:在本系统中,每一个代码都和系统中的每一个对象唯一确定。

标准性:主要体现在对程序文件名命名和对数据文件命名的标准化上,遵循简单扼要,方便适用的原则。一目了然,无重复现象。为了系统维护人员便于进行系统维护,使用了统一的标准。

合理性:系统中代码设计与编码对象的分类相适应,以使代码对编码对象的分类据有标志作用。

适应性:在代码设计过程中,代码反映了编码对象的特点,便于识别和记忆,使系统维护人员容易了解和掌握,便于进行维护工作。

规范性:代码的结构,类型,格式统一,便于记忆和计算机进行处理。

3.1 系统功能分析

本系统实现了笔记本电子商务的实时更新和发布、浏览等功能现,具体来说,它包括以下功能:

笔记本浏览、分类浏览;

购物车;

笔记本维护,包括增删改查;

用户信息维护、注册

    客户信息管理

用户留言、评价(消费者对该商品的评价)

后台管理:管理员管理、会员注册管理、商品以及商品分类管理、留言管理等

3.2  系统总体结构设计

   系统结构设计是从计算机实现的角度出发,对系统的逻辑结构进行组合,使其界面更加清楚和明确,并在此基础上,将系统进一步逐层分解,直至分解到模块。其基本思想是:将系统模块化,即把一个系统自上而下逐步分解为若干个彼此独立而又有一定联系的组成部分。

整个系统框架图:

第四章 笔记本网站详细设计与实现

4.1 数据库设计

4.1.1 数据库设计概述

数据库是一个系统的核心,只有规范地设计好数据库表,才能使后期的程序开发更顺利和少走弯路。

数据库表设计原则:

(1)不应针对整个系统进行数据库设计,而应该根据系统架构中的组件划分,针对每个组件所处理的业务进行组件单元的数据库设计;不同组件间所对应的数据库表之间的关联应尽可能减少,如果不同组件间的表需要外键关联也尽量不要创建外键关联,而只是记录关联表的一个主键,确保组件对应的表之间的独立性,为系统或表结构的重构提供可能性。

(2)采用领域模型驱动的方式和自顶向下的思路进行数据库设计,首先分析系统业务,根据职责定义对象。对象要符合封装的特性,确保与职责相关的数据项被定义在一个对象之内,这些数据项能够完整描述该职责,不会出现职责描述缺失。并且一个对象有且只有一项职责,如果一个对象要负责两个或两个以上的职责,应进行分拆。

(3)根据建立的领域模型进行数据库表的映射,此时应参考数据库设计第二范式:一个表中的所有非关键字属性都依赖于整个关键字。关键字可以是一个属性,也可以是多个属性的集合,不论那种方式,都应确保关键字能够保证唯一性。在确定关键字时,应保证关键字不会参与业务且不会出现更新异常,这时,最优解决方案为采用一个自增数值型属性或一个随机字符串作为表的关键字。

(4)由于第一点所述的领域模型驱动的方式设计数据库表结构,领域模型中的每一个对象只有一项职责,所以对象中的数据项不存在传递依赖,所以,这种思路的数据库表结构设计从一开始即满足第三范式:一个表应满足第二范式,且属性间不存在传递依赖。

(5)同样,由于对象职责的单一性以及对象之间的关系反映的是业务逻辑之间的关系,所以在领域模型中的对象存在主对象和从对象之分,从对象是从1-N或N-N的角度进一步主对象的业务逻辑,所以从对象及对象关系映射为的表及表关联关系不存在删除和插入异常。

(6)在映射后得出的数据库表结构中,应再根据第四范式进行进一步修改,确保不存在多值依赖。这时,应根据反向工程的思路反馈给领域模型。如果表结构中存在多值依赖,则证明领域模型中的对象具有至少两个以上的职责,应根据第一条进行设计修正。第四范式:一个表如果满足BCNF,不应存在多值依赖。

4.1.2数据库表详细设计

根据4.1的数据库E-R图,可设计出以下物理数据表

表名:admin

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

id

int

4

0

2

admin

varchar

50

0

3

password

varchar

50

0

表名:city_table

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

id

int

4

0

2

oneid

int

4

0

3

twoid

int

4

0

4

three

int

4

0

5

name

varchar

50

0

表名:d_users

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

uid

int

4

0

2

username

nvarchar

50

0

3

truename

nvarchar

50

0

4

password

nvarchar

50

0

5

question

nvarchar

50

0

6

answer

nvarchar

50

0

7

email

nvarchar

50

0

8

sex

nvarchar

50

0

9

regdate

datetime

8

3

10

lastloginip

nvarchar

50

0

11

logintimes

int

4

0

0

12

userjifen

int

4

0

13

QQ

nvarchar

50

0

14

lastlogintime

datetime

8

3

15

IDCARD

nvarchar

50

0

16

Address

nvarchar

200

0

17

Telephone

nvarchar

50

0

18

Postcode

nvarchar

50

0

19

Usertype

int

4

0

表名:gonggao

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

gid

int

4

0

2

gtitle

varchar

50

0

3

gcontent

text

16

0

4

gdate

datetime

8

3

getdate

5

gfeel

int

4

0

0

表名:help1

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

hid

int

4

0

2

hename

varchar

200

0

表名:help2

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

hhid

int

4

0

2

hid

int

4

0

3

helpname

varchar

200

0

4

helpdetail

ntext

16

0

表名:leibie

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

Classid

int

4

0

2

Classname

nvarchar

50

0

表名:leibiex

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

Classxid

int

4

0

2

Classid

int

4

0

3

Classxname

nvarchar

50

0

表名:newcenter

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

nid

int

4

0

2

newtitle

varchar

50

0

3

newcontact

text

16

0

4

newshijian

datetime

8

3

getdate

5

hittime

int

4

0

0

表名:orderdetail

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

detailid

int

4

0

2

pid

int

4

0

3

shuliang

int

4

0

4

orderid

varchar

50

0

5

producttotail

decimal

9

2

表名:orders

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

oid

int

4

0

2

orderid

varchar

50

0

3

username

varchar

50

0

4

userid

int

4

0

5

shouhuoname

varchar

50

0

6

address

nvarchar

200

0

7

postcode

nvarchar

50

0

8

telephone

nvarchar

50

0

9

songhuofs

nvarchar

50

0

10

fukuanfs

nvarchar

50

0

11

dingdanfeel

int

4

0

0

订单状态 0,取消订单 1,等待发货 2,商家已发货 3,确认收货 4,完成交易

12

dingdanshijian

datetime

8

3

13

dingdantotal

decimal

9

2

14

beizhu

varchar

50

0

'暂无'

备注信息

15

djifen

int

4

0

表名:product

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

pid

int

4

0

2

classid

int

4

0

3

classxid

int

4

0

4

productname

nvarchar

50

0

5

productintroduce

text

16

0

6

productchu

nvarchar

200

0

7

productimage

nvarchar

50

0

N'images/nopic.gif'

8

masterprice

decimal

9

2

9

hotprice

decimal

9

2

10

newproduct

int

4

0

11

guige

nvarchar

50

0

N'未知'

12

productguanjian

nvarchar

200

0

N'无'

13

adddate

datetime

8

3

getdate

14

pkc

int

4

0

库存


文章转载自:

http://4AYwcUab.phLrp.cn
http://Tr5chCwJ.phLrp.cn
http://wi5IHEta.phLrp.cn
http://9Ir1llG3.phLrp.cn
http://NbUdQtGO.phLrp.cn
http://BqUUfvbK.phLrp.cn
http://vHppPnqP.phLrp.cn
http://ZT5lR8ic.phLrp.cn
http://WFqtNW4Y.phLrp.cn
http://AhQS0gGw.phLrp.cn
http://zpuD7SmC.phLrp.cn
http://IMMxJVWz.phLrp.cn
http://LrMMj80r.phLrp.cn
http://n87ZQGbd.phLrp.cn
http://vFA8UWHJ.phLrp.cn
http://wGWs2VQE.phLrp.cn
http://3Vgz4HsR.phLrp.cn
http://AARCQmqa.phLrp.cn
http://6jCGgFJo.phLrp.cn
http://qon2fgCR.phLrp.cn
http://gfyoe5s4.phLrp.cn
http://FA5yzXDa.phLrp.cn
http://QdiwrMOu.phLrp.cn
http://8s3YM9iJ.phLrp.cn
http://WY4RCWl2.phLrp.cn
http://OXbWS1ER.phLrp.cn
http://3Wgd7PBl.phLrp.cn
http://xcfF0dXe.phLrp.cn
http://2QN9nFs8.phLrp.cn
http://mEgm8LvZ.phLrp.cn
http://www.dtcms.com/a/382762.html

相关文章:

  • k3s集群部署(使用外部etcd集群)
  • 京东返利app的分布式ID生成策略:雪花算法在订单系统中的实践
  • 大数据分析岗位发展前景与行业需求分析
  • 【Linux手册】共享内存:零拷贝实现共享的优势与实操指南
  • ARM的TrustZone
  • 返利app排行榜的缓存更新策略:基于过期时间与主动更新的混合方案
  • springboot+zookeeper+(2025最新)Dubbo-admin实现分布式
  • 缓存与数据库一致性实战手册:从故障修复到架构演进
  • 基于 Linux 内核模块的字符设备 FIFO 驱动设计与实现解析(C/C++代码实现)
  • 【C++】类和对象(下):初始化列表、类型转换、Static、友元、内部类、匿名对象/有名对象、优化
  • JSON、Ajax
  • 第2课:Agent系统架构与设计模式
  • Python上下文管理器进阶指南:不仅仅是with语句
  • Entities - Entity 的创建模式
  • 用html5写王者荣耀之王者坟墓的游戏2deepseek版
  • 【Wit】pure-admin后台管理系统前端与FastAPI后端联调通信实例
  • godot+c#使用godot-sqlite连接数据库
  • 【pure-admin】pureadmin的登录对接后端
  • tcpump | 深入探索网络抓包工具
  • scikit-learn 分层聚类算法详解
  • Kafka面试精讲 Day 18:磁盘IO与网络优化
  • javaweb CSS
  • css`min()` 、`max()`、 `clamp()`
  • 超越平面交互:SLAM技术如何驱动MR迈向空间计算时代?诠视科技以算法引领变革
  • Win11桌面的word文件以及PPT文件变为白色,但是可以正常打开,如何修复
  • 【系统架构设计(31)】操作系统下:存储、设备与文件管理
  • Flask学习笔记(三)--URL构建与模板的使用
  • 基于单片机的电子抢答器设计(论文+源码)
  • TCP与UDP
  • 【WebSocket✨】入门之旅(六):WebSocket 与其他实时通信技术的对比