1、关系说明:该表主要用来保存食品种类信息的数据。CustomerCustomerDemo(消费者表)CustomerID(主键)nchar5CustomerTypeID(主键)10组合主键:CustomerID、CustomerTypeIDPK_CustomerCustomerDemo外键:1.列 CustomerTypeID引用表CustomerDemographics(CustomerTypeID)2.列 CustomerID引用表Customers(CustomerID)外键约束名称:FK_CustomerCustomerDemo和FK_CustomerCustomerDemo_Custo
2、mers该表主要用来保存消费者ID和消费者类别ID信息的数据。CustomerDemographics(消费者类别说明表)CustomerDesc16CustomerTypeIDPK_CustomerDemographics该表主要用来存储消费者类别说明信息。Customers(消费者信息表)CompanyName40ContactName30ContactTitleAddress60CityRegionPostalCodeCountryPhone24FaxCustomerIDPK_Customers该表主要用来存储消费者详细信息的数据表。Employees(雇员信息表)EmployeeID(
3、主键)LastName20FirstNameTitleTitleOfCourtesy25BirthDatedatetime8HireDateHomePhoneExtensionPhotoNotesReportsToPhotoPath255EmployeeIDPK_Employees1.列 ReportsTo引用表Employees(EmployeeID)外键约束名称FK_Employees_Employees该表主要用来存储雇员的详细信息数据表。EmployeeTerritories(雇员销售区域表)TerritoryID(主键)EmployeeID、TerritoryIDPK_Employe
4、eTerritories1.列 EmployeeID引用表Employees(EmployeeID)2.列 TerritoryID引用表Territories (TerritoryID)FK_EmployeeTerritories_Employees和FK_EmployeeTerritories_Territories该表主要用来存储雇员ID和其对应的销售区域ID。Order Details(订单价格表)OrderID(主键)ProductID(主键)UnitPricemoneyQuantitysamllint2DiscountrealOrderID、ProductIDPK_Order_Det
5、ails1.列 OrderID引用表Orders(OrderID)2.列 ProductID引用表Products(ProductID)FK_Order_Details_Orders和FK_Order_Details_Products该表主要用来存储订单价格信息的数据表1 组合、主键、聚集索引在 OrderID 和ProductID 上定义。2 在 OrderID 上也有两个非聚集索引。3 在 ProductID 上也有两个非聚集索引。4 UnitPrice 的 CHECK 约束被定义为 (UnitPrice = 0)。5 Quantity 的 CHECK 约束被定义为 (Quantity 0
6、)。表级别的 CHECK 约束被定义为 (Discount = 0 和 Discount =)。UnitsInStock 的 CHECK 约束被定义为 (UnitsInStock =)UnitsOnOrder 的 CHECK 约束被定义为 (UnitsOnOrder 6ReorderLevel 的 CHECK 约束被定义为 (ReorderLevel Region(区域表)RegionID(主键)RegionDescription50RegionIDPK_Region该表主要用来存储区域信息数据。Shippers(托运信息表)ShipperID(主键)ShipperIDPK_Shippers该
7、表主要用来存储托运公司的详细信息数据。Suppliers(供应商信息表)SupplierID(主键)HomePagePK_Suppliers该表主要用来存储供应商详细信息数据。Territories(销售区域信息表)TerritoryDescriptionTerritoryIDPK_Territories1.列 RegionID引用表Region(RegionID)FK_Territories_Region该表用来存储销售区域详细说明信息的数据。存储过程分析:1CustOrderHist参数:消费者编号作用:用来显示指定消费者购买各种商品的总数。2CustOrdersDetail订单编号用来显
8、示指定订单编号的销售信息。3CustOrdersOrders用来显示指定消费者所有订单销售期限情况。4Employee Sales by Country起始时间、结束时间用来显示在起始时间和结束时间之间的需要发货订单的负责人信息和订单的详细信息。5Sales by Year用来查询在起始时间和结束时间之间发货的订单信息及所属年份(包括售价)。6.SalesByCategory 参数:食品类别、年份 返回值:返回指定食品名称、年份的销售食品名称和其售价。7Ten Most Expensive Products显示Products表中食品单价排在前10位的食品名称和食品单价。视图分析:1Alpha
9、betical list of products未过期食品的详细信息及其所属的类别。2Category Sales for 1997显示种类食品在1997年的实际销售部。3Current Product List显示未过期食品的信息。4Customer and Suppliers by City所有消费者和供货商的信息。5Invoices 按照订单发货的详细信息。6Order Details Extended订单明细的详细信息。7Order Subtotals每单的实际销售额8Orders Qry 有订单的客户的详细订单信息及客户信息9Product Sales for 1997 每种食品在1
10、997实际销售额以及食品的详细信息10Products Above Average Price单位售价大于所有食品平均售价的食品清单。11Products by Category未过期食品的存货情况(按照商品分类)12Quarterly Orders1997年有订单的客户信息13Sales by Category1997年订单食品的详细情况14Sales Totals by Amount1997年每单销售额大于2500的订单的信息15Summary of Sales by Quarter1997年已发货订单的发货时间16Summary of Sales by Year 1997年已发货订单的发
11、货时间2)给出Northwind库的整体ER关系图,给出Employees和Customers表的数据库字典。图一图二Employees:员工表相应字段:EmployeeID:员工代号;LastName + FirstName:员工姓名;Title:头衔;TitleOfCourtesy:尊称;BirthDate:出生日期;HireDate:雇用日期;Address:家庭地址;City:所在城市;Region:所在地区;PostalCode:邮编;Country:国家用;HomePhone:宅电;Extension:分机;Photo:手机;notes:照片;ReportsTo:上级;PhotoP
12、ath:照片Customers:客户表CustomerID:客户ID;CompanyName:所在公司名称;ContactName:客户姓名;ContactTitle:客户头衔;联系地址;City:国家Phone:电话;Fax:传真数据库字典:Employees序号列名小数位标识主键允许空默认值字段说明EmployeeID- 雇工LastName -姓3FirstName- CustomerI名Title- 标题TitleOfCourtesy- 礼貌标题6BirthDate- 生日宴会7HireDate- daetime雇员Address- 120地址9City- 城市Region- 区域11
13、PostalCode- 邮政编码12Country- 13HomePhone- 48住宅电话14Extension- narchar范围Photo- 17ReportsTo- 报告给18PhotoPath- 510CustomersCustomerID- 消费帐户CompanyName 80公司名称ContactName- 联系姓名ContactTitle- 联系名称Phone- 电话Fax- 二、Northwind库的综合应用注:对于一个数据库而言,不仅仅是提供一个数据的存储位置,更多的是能够提供对所存储数据的处理功能,满足业务需要。下面是一些在项目开发过程中经常使用的数据库设计功能点,请给
14、出设计的思路及具体代码。1)在应用程序中,对于数据库中提供的数据记录要进行显示,当记录比较多的时候,要进行分页显示。请设计一个存储过程,能够分页提供所需要的产品信息,存储过程名称为getProductbyPage,存储过程的参数为每页显示的数据及记录条数pagesize和要获取的是哪一个分页的数据库pageindex,存储过程能够得到所需要的该分页中的记录集合。 CREATE proce getProductbyPage(pagesize char(10)pageindex char(100) )assetnocountonbegindeclareindextabletable(idintid
15、entity(1,1),nidint)-定义表变量declarePageLowerBoundint-定义此页的底码 declarePageUpperBoundint-定义此页的顶码 setPageLowerBound=(pageindex-1)*pagesize setPageUpperBound=PageLowerBound+pagesizesetrowcountPageUpperBoundinsertintoindextable(nid)selectgidfromTGongwenwherefariqidateadd(day,-365,getdate()orderbyfariqidescselectO.gid,O.mid,O.title,O.fadanwei,O.fariqifromTGongwenO,indextabletwhereO.gid=t.nidandt.idPageLowerBoundandt.id=PageUpperBoundorderb
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1