课程设计报告
表名:RoomInfo 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 列名 RoomID RenterID RoomType Location Floor RatingNum TrueNum Area Price AirCondition Telephone TV WashRoom Kitchen Internet Remark 数据类型 Char Char Varchar Varchar Varchar Smallint Smallint Smallint Money Bit Bit Bit Bit Bit Bit Varchar 长度 小数位 标识 主键 允许空 默认值 4 18 20 50 2 2 2 2 8 1 1 1 1 1 1 50 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ 说明 房屋ID 出租人ID 房屋类型 房屋位置 房屋楼层 额定人数 实住人数 面积 价格 是否有空调 是否有电话 是否有电视 是否有卫间 是否有厨房 是否有宽带 备注 表3-3 RoomInfo表
表名: Customer
序号 1 2 3 4 5 6 7 8 9 10 11 列名 CustomerID CustomerName Sex NativePlace IDCard RoomID InDate RentalDate ContractID 数据类型 Char VarChar Char VarChar Char Char Datatime Datatime Char 长度 小数位 标识 主键 允许空 默认值 18 20 3 50 18 4 8 8 8 8 50 0 0 0 0 0 0 0 0 0 4 0 √ √ √ √ √ √ √ √ 说明 承租客户ID 承租人姓名 性别 籍贯 身份证号 房屋ID 入住时间 交租时间 月租金额 合同编号 备注 CustomerRental Money Remark VarChar 表3-4 Customer表
26
课程设计报告
RoomInfoCustomerPK FK1 CustomerIDCustomerNameSexNativePlaceIDCardRoomIDInDateRentalDateContractIDCustomerRentalRemarkPKFK1 RoomIDRenterRenterIDRoomTypeLocationFloorRatingNumTrueNumAreaPriceAirConditionTelephoneTVWashRoomKitchenInternetRemarkPK RenterIDRenterNameContactContractIDRenterRentalRemark
图3-17 数据库导出关系表
上图是由Microsoft Visio的数据库反向工程导出的数据库关系表,从表中可以看出,RoomID为Customer表的外键,其参照的是RoomInfo表的主键RoomID,而在RoomInfo表中的RenterID也是外键,其参照的的是Renter表中的主键RenterID。
视图设计:
视图数据库中有两个视图,分别是客户信息视图(View_CustomerInfo)和房屋信息视图(View_RoomInfo)。
客户信息视图基于三张表:出租人信息表,房屋信息表,承租客户表。包括承租客户姓名,可昂类型,价格,入住客户ID,房屋ID,入住日期,交租日期,交租金额,出租人租金和实际利润 客户信息视图的SQL脚本如下:
SELECT TOP (100) PERCENT dbo.Customer.CustomerName, dbo.RoomInfo.RoomType, dbo.RoomInfo.Price, dbo.Customer.CustomerID, dbo.RoomInfo.RoomID,
dbo.Renter.RenterRental, dbo.Customer.InDate, dbo.Customer.RentalDate, dbo.Customer.CustomerRental,
dbo.Customer.CustomerRental - dbo.Renter.RenterRental AS TrueProfit FROM dbo.Customer INNER JOIN
dbo.RoomInfo ON dbo.Customer.RoomID = dbo.RoomInfo.RoomID INNER JOIN
dbo.Renter ON dbo.RoomInfo.RenterID = dbo.Renter.RenterID ORDER BY dbo.Customer.CustomerID
27
课程设计报告
图3-18 客户信息视图的数据表来源
图3-19 客户信息视图的字段结构图
房屋信息视图(View_RoomInfo)基于两张表:出租人信息表和房屋信息表。包括出租人姓名,联系方式,房屋类型,合同编号,房屋ID,租金,房屋位置,房屋楼层,额定人数,实住人数,面积,价格和计划利润。
房屋信息视图的SQL脚本
SELECT TOP (100) PERCENT dbo.Renter.RenterName, dbo.Renter.Contact, dbo.Renter.RenterRental, dbo.RoomInfo.RoomID, dbo.RoomInfo.RoomType,
dbo.RoomInfo.Location, dbo.RoomInfo.Floor, dbo.RoomInfo.RatingNum, dbo.RoomInfo.Area, dbo.RoomInfo.Price, dbo.Renter.ContractID,
dbo.RoomInfo.TrueNum, dbo.RoomInfo.Price - dbo.Renter.RenterRental AS PlanProfit
FROM dbo.Renter INNER JOIN
dbo.RoomInfo ON dbo.Renter.RenterID = dbo.RoomInfo.RenterID ORDER BY dbo.RoomInfo.RoomID
28
课程设计报告
图3-20房屋信息视图的数据来源
图3-21房屋信息视图的字段结构图
(2)全局数据 在C#中有连接字符串的类,在rentmenage的命名空间下,每个模块中的数据全部都要创建此类的对象实现数据库的连接,因此连接字符串数据全局数据。 连接字符串写在dbconnection.cs文件下,其代码如下: public static string connection {
get{return\source=(local);user id=sa;password=123;initial catalog=RentManage;integrated security=SSPI;\ }
在数据库的存储模式之中,每次存入数据时首先要打开数据库连接,使用对象对数据库进行操作之后再关闭数据库连接。
3.3模块描述
3.3.1 出租运作模块描述(见图3-2) 1)功能:对房屋出租的的信息描述和信息处理,用于添加出租人信息,修改出租人信息,删除出租人信息,在该模块中,实现的是出租人管理的功能。 2) 接口: 总的来说,此模块需要调用三个子模块完成其功能,分别是出租添加模块,出租修改模块,出租删除模块。 输入参数:出租人ID,出租人姓名,联系方式,合同编号,出租人租金,备注。
29
课程设计报告
输出参数:错误信息提示。 3) 数据:
出租运作模块所调用的数据库中的数据结构为出租人信息表(Renter),其添加删除修改主要是以
此数据结构作为基本单位进行操作。
4) 处理:
具体处理流程在软件模块设计图中已经给出,见图3-2
3.3.2 出租添加模块 1)功能:添加出租人信息,记录并存储到数据库中,包括出租人ID,出租人姓名,联系方式,合同编号和备注 2)接口: 总的来说,此模块需要调用基本的输入输出模块和处理模块才能完成其功能,这些模块都在代码中实现,对于基本输入模块,功能是检测输入的数据有没有类型错误,并且将数据格式化,比如删除数据前后的空格,将租金转换为Money类型等等。基本输出模块是将添加之后的信息输出显示到单元格中,输出需要格式化,需要连接数据库,因此又需要调用数据库存储模块;至于处理模块,处理的作用就是将数据存储到数据库中,关键是对SQL语句的使用。 输入参数:出租人ID,出租人姓名,联系方式,合同编号,出租人租金,备注。 输出参数:错误信息提示。
3) 数据:出租添加模块用到的主要数据结构是表。关系数据表也是数据库中的数据结构,其主要作用是记录数据的详细信息。此处需要用到的是出租人信息表(Renter),其添加数据主要是以此数据结构作为基本单位进行操作。
4)处理:
具体的处理流程见软件模块结构图3-3 出租添加模块
?输入出租完整信息
?若符合数据库完整性要求,则将信息录入,并返回提示信息true提示操作正确 ?若与完整性要求有抵触,则提示false,表明输入信息有误
3.3.3 出租编辑模块 1)功能:添加出租人信息,记录并存储到数据库中,包括出租人ID,出租人姓名,联系方式,合同编号和备注 2)接口: 总的来说,此模块需要调用基本的输入输出模块和处理模块才能完成其功能,这些模块都在代码中实现,对于基本输入模块,功能是检测输入的数据有没有类型错误,并且将数据格式化,比如删除数据前后的空格,将租金转换为Money类型等等。基本输出模块是将添加之后的信息输出显示到单元格中,输出需要格式化,需要连接数据库,因此又需要调用数据库存储模块;至于处理模块,处理的作用就是将数据存储到数据库中,关键是对SQL语句的使用。 输入参数:出租人ID,出租人姓名,联系方式,合同编号,出租人租金,备注。 输出参数:错误信息提示。
3) 数据:出租添加模块用到的主要数据结构是表。关系数据表也是数据库中的数据结构,其主要作用是记录数据的详细信息。此处需要用到的是出租人信息表(Renter),其添加数据主要是以此数据结构作为基本单位进行操作。
4)处理:
具体的处理流程见软件模块结构图3-3 出租添加模块
?输入出租完整信息
30