数据库设计 宾馆管理系统
- 格式:docx
- 大小:53.95 KB
- 文档页数:15
西南科技大学数据库应用课程设计报告宾馆管理系统数据库设计学生姓名:学号:班级:指导老师:学院:提交日期:2016 年6月8日数据库应用课程设计评阅目录前言 (4)1.需求分析 (4)1.1系统功能背景资料 (4)1.2系统功能 (4)2.概要结构设计 (5)3.逻辑结构设计 (7)3.1关系模式设计 (7)3.2 关系模式的分析优化 (8)4.数据库物理设计 (10)5.数据库实施 (12)5.1.1各数据表说明 (12)5.1.2数据库创建 (12)5.2数据库操作 (12)6.部分系统功能实现 (16)7.总结 (18)前言在计算机技术发达的今天,各行各业都能利用计算机、网络来优化自己的业务,使业务简洁化、有序化。
宾馆管理系统能为宾馆提供如下功能:通过房间号查询该房间的等级/价位与入住信息;通过订单号查询单次入住信息及消费情况;通过身份证号查询该客户等级,入住记录;通过日期查询宾馆当月资产变化记录。
1. 需求分析设计本系统模拟宾馆内的工作人员及房间资金等管理内容,包括房间管理、客人入住、店内消费管理、结算管理、实现分类查询、输出相应的数据报表。
系统需要管理的情况如下:房间管理、客人入住、店内消费管理、结算管理、实现分类查询、输出相应的数据报表。
宾馆管理系统能为宾馆提供如下功能:通过房间号查询该房间的等级/价位与入住信息;通过订单号查询单次入住信息及消费情况;通过身份证号查询该客户等级,入住记录;通过日期查询宾馆当月资产变化记录。
1.1系统功能背景资料客户在邮局订购报纸的管理内容包括:1).宾馆有一名总经理、多名会计和多名前台。
总经理负责宾馆的日常运营,会计负责对宾馆收入支出的统计管理,前台数据包括职工号等。
职工号在宾馆内唯一。
2).宾馆有各种标准的房间。
房间数据包括房间号、房间级别、房间价位以及房间的状态(是否已经有客人)。
房间号唯一表示一个房间,房间级别决定房间价位,房间有多种级别分别表示:单人间、标准间、豪华间、商务间、行政间。
酒店管理信息系统系统平台: Windows 2000数据库服务器: MicrosoftSQL Server 2000开发工具: Visual Basic 6.0系统开发人员:⒈编写目地酒店在正常地运营中需要对客房资源、顾客信息、结算信息进行管理 , 利用宾馆管理信息系统及时了解各个环节中信息地变更, 有利于提高管理效率 . b5E2RGbCAP⒉系统功能分析系统开发地总体任务是实现宾馆各种信息地系统化、规范化和自动化.主要完成功能:●有关客房标准地制定、标准信息地输入 , 包括标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视机、电话以及单独卫生间等 . p1EanqFDPw●客房标准信息地修改、查询等.●客房基本信息地输入 , 包括客房编号、客房类型、客房位置、客房单价、备注等 .●客房基本信息地查询、修改 , 包括客房编号、客房类型、客房位置、客房单价、备注等 .●剩余客房信息地查询等 .●订房信息地输入 , 包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等 . DXDiTa9E3d●订房信息地修改和查询, 包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等 . RTCrpUDGiT●结算信息地输入 , 包括客房编号、客房种类、位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结算日期、备注信息等 . 5PCzVD7HxA●结算信息地修改和查询 , 包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结日期、备注信息等 . jLBHrnAILg⒊系统功能模块设计按结构化程序设计思想 , 分析得出如下系统功能模块图宾馆管理信息系统结订客算房房系信信信统息息息管管管管理理理理剩结结结订订订余设设算算算房房房客置置密用信信信信信信房客客码户息息息息息息信房房管管查修添查修添息信标理理询改加询改加查息准询客客客客客房房房房房信信信标标息息息准准查修添修添询改加改加xHAQX74J0X图Ⅰ系统功能模块图⒋数据库设计数据库设计步骤:●数据库需求分析●数据库概念结构设计●数据库逻辑结构设计①数据库需求分析分析调查有关宾馆管理信息需求地基础上得本系统所处理地数据流程客房标准设置客房登记基本信息输入基本信息录入客房信息管理顾客登记订房信息管理订房信息管理客房信息返回结算信息输入结算信息管理LDAYtRyKfE图Ⅱ 宾馆管理信息系统数据流程图针对一般宾馆管理信息系统地需求, 通过对宾馆管理过程地内容和流程分析,设计如下面所示地数据项和数据结构:Zzz6ZB2Ltk●客房标准信息 , 包括地数据项有:标准编号、标准名称、房间面积、床位数量、住房单价、是否有空调、电视、电话、单独卫生间等 . dvzfvkwMI1●客房信息 , 包括地数据项有:客房编号、客房种类、客房位置、客房单价、备注等 .●订房信息 , 包括地数据项有:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时间、折扣、备注等 . rqyn14ZNXI●结算信息 , 包括地数据项有:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、顾客身份证号码、入住时间、折扣、结算时间、备注等 . EmxvxOtOco②数据库概念结构设计本系统根据以上地设计规划出地实体有:客房标准信息实体、客房信息实体、订房信息实体、结算信息实体. 各个实体具体地描述E-R图如下:SixE2yXPq5客房标准信息实体标准编号客房单价标准名称床位数量客房标准信息实体E - R图客房信息实体客房标准客房单价客房编号客房位置客房信息实体E - R图订房信息实体客房信息折扣顾客信息入住时间订房信息实体E - R图结算信息实体客房信息结算金额顾客信息结算时间结算信息实体E - R图客房标准信息客房登记客房信息管理订房结算信息管理订房信息管理客房结算实体之间关系E - R图③数据库逻辑结构设计首先将宾馆管理信息系统地数据库概念结构转化为SQL 2000数据库系统所支持地实际数据模型, 即:数据库地逻辑结构 . 其各个表格地设计结果如下6ewMyirQFL列名数据类型可否为空说明Typeid Varchar NOT NULL标准编号Typename Varchar NOT NULL标准名称Area Numeric NULL房间面积Bednum Numeric NULL床位数量Haircondition Varchar NULL是否有空调Htelephone Varchar NULL是否有电话Htelevision Varchar NULL是否有电视Htoilet Varchar NULL是否有单独卫生间Price Numeric NULL单价Roomtype 客房标准信息表列名数据类型 可否为空 说明 roomNO Varchar NOT NULL 客房编号 Roomtype Varchar NOT NULL 客房种类 Roomposition Varchar NULL 客房位置RoompriceNumeric NULL 单价PutupVarchar NOT NULL 是否被预定RoommemoText NULL备注Rooms 客房信息表列名数据类型 可否为空 说 明 BooknoVarchar NOT NULL 订房编号 Customname Varchar NOT NULL 顾客姓名 CustomID Varchar NOT NULL 身份证号码 Roomno Varchar NOT NULL 客房编号 Indate Datetime NULL 入住日期Discount Numeric NULL折扣 Inmeno Text NULL 备注 Checkdate Datetime NULL 结算日期AmountNumeric NULL金额Bookin 订房信息表⒌数据库结构地实现利用 SQL 2000 数据库系统中地查询分析实现数据库地逻辑结构 , 其表格如下: 创建系统用户表格 user_Info CREATE TABLE [dbo].[user_Info1]([user_ID][char](10> COLLATE Chinese_PRC_CI_AS NOT NULL, kavU42VRUs [user_PWD] [char] (10> COLLATE Chinese_PRC_CI_AS NULL, y6v3ALoS89 [user_Des] [char](10> COLLATE Chinese_PRC_CI_AS NULL M2ub6vSTnP > ON [PRIMARY]创建客房标准信息表格 roomtype CREATE TABLE [dbo].[roomtype]([typeid][char](10> COLLATE Chinese_PRC_CI_AS NOT NULL, [typename][char](10> COLLATE Chinese_PRC_CI_AS NOT NULL, [area][numeric](5,0> NULL,0YujCfmUCweUts8ZQVRd [bednum][numeric](2,0> NULL, [haircondition][char](2> COLLATE Chinese_PRC_CI_ASNULL,sQsAEJkW5T[htelephone][char](2> COLLATE Chinese_PRC_CI_AS NULL, [htelevision][char](2> COLLATE Chinese_PRC_CI_AS NULL,[htoilet][char](2> COLLATE Chinese_PRC_CI_AS NULL, [price][numeric](10,2>NULL> ON [PRIMARY]GMsIasNXkATIrRGchYzg创建客房信息表格 roomsCREATE TABLE [dbo].[rooms]([roomNO][char](10> COLLATE Chinese_PRC_CI_AS NOT NULL, 7EqZcWLZNX [roomtype][char](10> COLLATE Chinese_PRC_CI_AS NOT NULL,lzq7IGf02E [roomposition][char](20> COLLATE Chinese_PRC_CI_AS NULL,zvpgeqJ1hk [roomprice][numeric](10,2> NULL,[putup][char](2> COLLATE Chinese_PRC_CI_AS NOT NULL, NrpoJac3v1[roommemo][text] COLLATE Chinese_PRC_CI_AS NULL>ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]创建订房信息表 bookin CREATETABLE [dbo].[bookin]([bookno][char](14> COLLATE Chinese_PRC_CI_AS NOT NULL,1nowfTG4KI[customname][char](10>COLLATE Chinese_PRC_CI_AS NOT NULL,fjnFLDa5Zo[customID][char](18> COLLATE Chinese_PRC_CI_AS NOT NULL,tfnNhnE6e5 [roomno][char](10> COLLATE Chinese_PRC_CI_AS NOT NULL,HbmVN777sL [indate][datetime] NULL,[discount][numeric](2,0> NULL,[inmemo][text] COLLATE Chinese_PRC_CI_AS NULL,[checkdate][datetime] NULL,[ammount][numeric](10,2> NULL> ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]⒍宾馆管理信息系统具体程序实现⑴创建公用模块Module1.bas添加公共数据操作函数 , 用以执行各种 SQL 语句 . 添加函数 ExecuteSQL, 代码如下:Public Function ExecuteSQL(ByValSQL As String,MsgString AsString>_ As ADODB.Recordset V7l4jRB8Hs‘执行 SQL语句 , 并返回记录集对象Dim cnn As ADODB.ConnectionDim rst As ADODB.RecordsetDim sTokens(> As String‘异常处理On Error GoTo ExecuteSQ L_Error ’‘用 Split函数产生一个包含各个子串地数组sTokens=Split(SQL>Set cnn=NEW ADODB.Connection‘打开连接cnn.Open ConnectStringIf InStr( “INSERT,DELETE,UPDATE”,UCase$(sTokens(0>>> Then83lcPA59W9Cnn.Execute SQLMsgString=sTokens(0>& ”query successful”ElseSet rst=NEW ADODO.Recordsetrst.Open Trim$(SQL>,cnn,adOpenKeyset,adLockOptimisticmZkklkzaaP rst.MoveLastget RecordCount‘返回记录集对象Set ExecuteSQL=rstMsgString= ”查询到” &rst.RecordCount& ”条记录”End IfExecuteSQL_Exit:Set rst=NothingSet cnn=NothingExit FunctionExecuteSQL_Error:MsgString= ”查询错误 : ”&Err.DescriptionResume ExecuteSQL_ExitEnd FunctionPublic Sub EnterToTab(Keyasc As Integer>‘判断是否为回车键If Keyasc=13 Then ‘ Keyasc 用来保存当前按键‘转换成 Tab 键SendKey s”{TAB}”End IfEnd sub‘添加全局变量 , 用来记录各个窗口地读写状态, 代码如下:Public flagTedit As Boolean ‘标示是否进入修改地窗体Public flagRedit As BooleanPublic flagBedit As BooleanPublic flagCedit As BooleanPublic gintCmode As IntegerPublic gintTmode As Integer’记录是添加还是修改状态,1 为添加 ,2 为修改Public gintRmode As IntegerPublic gintBmode As IntegerPublic flagSedit As Boolean⑵系统用户管理模块地创建用户管理模块主要实现:·用户登陆 .·添加用户 .·修改用户具体客房标准添加代码:Private Sub Form_Load(>‘载入窗体后,判断所处状态Dim intCount As IntegerDim MsgText As StringDim i As IntegerIf gintTmode=1 Then‘判断是否属于添加状态Me.Caption=Me.Caption& ”添加”For i=0 To 3Combo1(i>.AddItem”否”Combo1(i>.AddItem”是”Combo1(i>.ListIndex=0Next iElseIf gintTmode=2 Then‘判断是否处于修改状态Setmrc=ExecuteSql(txtSQL,MsgText>If mrc.EOF=false ThenWith mrcFor intCount=0 To 3txtItem(intCount>=.Fields(intCount>Next intCounttxtItem(4>=.Fileds(8>For i=0 To 3Combo1(i>.Additem ”否”Combo1(i>.Additem ”是”Combo1(i>.ListIndex=0Next iEnd WithtxtItem(0>.Enabled=FalseEnd IfMe.Caption=Me.caption& ”修改”End IfmblChang=FalseEnd SubPrivate Sub cmd_Click(>’用户输入内容完毕后, 单击 cmdSave 按钮触发Click 事件AVktR43bpwDim intCount As IntegerDim sMeg As StringDim MsgText As StringFor intCount=0 To 4‘判断是否输入内容If Trim(txtItem(intCount>&”” >=”” ThenSelect Case intCountCase 0sMeg=”标准编号”Case 1sMeg=”标准名称”Case 2sMeg=”房间面积”Case 3sMeg=”床位数量”Case 4sMeg=”床位单价”End SelectsMeg=sMeg&”不能为空 ! ”MsgBox sMeg,vbOkOnly+vbExclamation, ”警告”txtItem(intCount>.SetFocusExit SubEnd ifNext intCount ‘判断输入内容是否为数字 ForintCount=2 To 4If Not IsNumeric(Trim(txtItem(intCount>>> ThenSelect Case intCountCase 2sMeg=”房间面积”Case 3sMeg=”床位数量”Case 4sMeg=”床位单价”End SelectsMeg=sMeg&”请输入数字 ! ”MsgBox sMeg,vbOKOnly+vbExclamation, ”警告”txtItem(intCount>.SeFocusExit SubEnd IfNext intCountIf gintTmode=1 Then‘判断是否有相同ID记录txtSQL=”sel ect*from roomtype where typeid_ =’” &Trim(txtItem(0>>&”’” ORjBnOwcEdSet mrc=ExecuteSQL(txtSQL,MsgText>If mrc.EOF=False ThenMsgBox“已经存在此标准编号地记录! ”,vbOKOnly+vbExclamation, ”警告”txtItem(0>.SetFocusExit SubEnd IfMrc.CloseEnd IftxtSQL=”select* from roomtype where typeid<> ’” &Trim(txtItem(0>>& ”’andtypename=’” &Trim(txtItem(1>>& ”’”2MiJTy0dTTSet mrc=ExecuteSQL(txtSQL,MsgText>If mrc.EOF=False ThenMsgBox”已经存在相同客房标准地记录! ”,vbOKOnly+vbExclamation,“警告”txtItem(1>.SetfocusExit SubEnd IftxtSQL=”delete from roomtype where typeid= ’” &Trim(txtItem(0>>& ”’”‘删除已有记录gIiSpiue7ASet mrc=ExecuteSQL(txtSQL,MsgText>txtSQL=”select *from roottype ”‘添加新记录 Setmrc=ExecuteSQL(txtSQL,MsgText>mrc.AddNewFor intCount=0 To 3mrc.Fields(intCount>=Trim(txtItem(intCount>>Next intCountFor intCount=0 To 3mrc.Fields(intCount+4>=Trim(Combo1(intCount>>Next intCountmrc.Fields(8>=Trim(txtItem(4>>mrc.Update‘更新数据库mrc.Closeif gintTmode=1 Then‘判断是否属于添加状态MsgBox “添加纪录成功 ! ”,vbOKOnly+vbExclamtion, “添加记录”For intCount=0 To 4txtItem(intCount>= ”” ‘清除已经输入地内容Next intCountFor intCount=0 To 3Combo1(intCount>.ListIndex=0Next intCountmblChange=False’判断是否打开窗口if flagTedit ThenUnload frmRoomtypefrmRoomtype.txtSQL=“select *from roomtype”frmRoomtype.ShowEnd IfElseIf gintTmode=2 Then‘判断是否处于修改状态Unload MeIf flagTedit ThenUnload frmRoomtypeEndIffrmRoomtype.txtSQL= ”select *from roomtype”frmRoomtype.ShowEnd IfEnd SubPrivate Sub txtItem_GotFocus(Index As Int eger>’文本框获得焦点时触发该事件 , 即自动选中输入地内容 , 便于修改uEh0U1YfmhtxtItem(Index>.SelStart=0txtItem(Index>.SelLength=Len(txtItem(Index>>End SubPrivate Sub cmdExit_Click(>’单击按钮cmdExit取消添加信息If mblChange And cmdSave.Enabled ThenIf MsgBox(“保存当前记录地变化吗?”,vbOKCancel+vbExcl amation, ”警告”>=vbOK Then ‘保存IAg9qLsgBXCall cmdSave_ClickEnd IfEnd IfUnload MeEnd SubPrivate Sub txtItem_KeyDown(Index As Integer,KeyCode As Integer,Shift_ As Integer> ‘输入完内容 , 单击回车键将自动进入下一个文本框 , 触发文本框地 Keydown事件WwghWvVhPEEnterToTab KeyCodeEnd Sub⑶修改客房标准窗体地创建Private Sub From_Load(>ShowTitleShowDataflagTedit=TrueEnd SubPrivate Sub ShowTitle(>‘调用showTitle函数,显示表头Dim i As IntegerWith msgList.Cols=10.TextMatrix(0,1>=”标准编号”.TextMatrix(0,2>=”标准名称”.TextMatrix(0,3>=”房间面积”.TextMatrix(0,4 >=”床位数量”.TextMatrix(0,5 >=”是否有空调”.TextMatrix(0,6 >=”是否有电话”.TextMatrix(0,7 >=”是否有电视”.TextMatrix(0,8 >=”是否有卫生间”.TextMatrix(0,9 >=”房间单价”.FixedRows=1‘固定表头For i=0 To 9‘设置各列地对齐方式.ColAlignment(i>=0Next i.FillStyle=flexFillRepeat‘表头项居中.Col=0.Row=0.RowSel=1.ColSel=.Cols-1.CellAlignment=4.ColWidth(0>=300‘设置单元大小.ColWidth(1>=1000.ColWidth(2>=2000.ColWidth(3>=2000.ColWidth(4>=1000.ColWidth(5>=1000.ColWidth(6>=1000.ColWidth(7>=1000.ColWidth(8>=1000.ColWidth(9>=1000.Row=1End WithEnd SubPrivate Sub ShowData(> ‘调用 showData 函数 , 显示记录列表Dim i As IntegerSet mrc=ExecuteSQL(txtSQL,MsgText>‘根据需要设置SQL 语句 , 显示需要地记录 asfpsfpi4kWith msgList.Rows=1Do While Not mrc.EOF.Rows=Rows+1For i=1 To mrc.Fields.CountSelect Case mrc.Fields(i-1>.TypeCase adDBDate.TextMatrix(.Rows-1,i>=Format(mrc.Fields(i-1>&”” , ”yyyy -mm-dd”>ooeyYZTjj1Case Else.TextMatrix(.Rows-1,i>=mrc.Fields(i-1>&””End SelectNext iMrc.MoveNextLoopEnd Withmrc.CloseEnd SubPrivate Sub msgList_MouseUp(Button As Integer,Shift As Integer,x As Single,y As Single>‘选择记录 , 然后单击鼠标右键 , 触发MouseUp事件BkeGuInkxIIf Button=2 And Shift=0 ThenPopupMenu fMainFrom.menuRoomtypeEnd IfEnd SubPrivate Sub menuModifyroomtype_Click(>Dim intCount As IntegerIf flagTedit Then‘判断是否打开记录窗体If frmRoomtype.msgList.Rows>1 ThenfintTmode=2‘设置为修改状态intCount=frmRoomtype.msgList.Row‘记下选择记录frmRoomtype1.txtSQL= ”select*from roomtype where typeid ’”&Trim(frmRoomtype.msgList.TextMatrix(intCount,1>>& ”’”PgdO0sRlMofrmRoomtype1.ShowElseCall menuAddroomtype_ClickEnd IfElsefrmRoomtype.txtSQL= ”select*from roomtype ”frmRoomtype.ShowEnd IfEnd SubPrivate Sub From_Resize(>‘窗体变化时,调整标签和表格位置,使标签处于窗体地最上方 , 而表格始终处于标签下方3cdXwckm15If Me.WindowState<>vbMinimized And fMainFrom.WindowState<>vbMinimizedThen‘边界处理h8c52WOngMIf Me.Scaleheight<10*lblTitle.Height ThenExit SubEnd IfIf Me.ScaleWidth<lblTitle.Width+lblTitle.Width/2Then v4bdyGiousExit SubEnd IflblTitle.Top=lblTitle.Height ‘控制控件地位置lblTitle.Left=(Me.Width-lblTitle.Width>/2msgList.Top=lblTitle.Top+lblTitle.Height+lblTitle.Height/2J0bm4qMpJ9msgList.Width=Me.ScaleWidth-200msgList.Left=Me.ScaleLeft+100msgList.Height=Me.ScaleHeight-msgList.Top-200End IfEnd Sub⑷删除客房标准Private Sub menuDeleteroomtype_Click(>Dim txtSQL As StringDim intCount As IntegerDim mrc As ADODB.RecordsetDim MsgText AsString If flagTedit Then‘判断是否打开记录窗体If frmRoomtype.msgList.Rows>1 ThenIf MsgBox(“真地要删除这么?”, vbOKCancel+vbExclamation,条文件记录”警告”>=vbOKThen XVauA9grYPintCount=frmRoomtype.msgList.RowtxtSQL=”delete from roomtype wheretypeid ’” &Trim(frmR oomtype.msgList.TextMatrix(intCount,1>>& ”’”bR9C6TJscwSet mrc=ExecuteSQL(txtSQL,MsgText>Unload frmRoomtype‘关闭记录窗体frmRoomtype.txtSQL= ”select*from roomtype”‘重新选择所有记录frmRoomtype.ShowEnd IfEnd IfEnd IfEnd Sub⑸客房信息管理模块地创建客房信息管理模块主要实现如下功能:·添加客房信息·修改客房信息·删除客房信息·查询客房信息具体实现代码如下:Private Sub From_Load(>‘载入窗体时,自动添加客房信息种类Dim sSql As StringDim intCount As IntegerDim MsgText As StringDim mrcc As ADODB.RecordsetIf gintRmode=1 Then ‘判断是否处于添加状态Me.Caption=me.Caption& “添加”txtSQL=”select DISTINCT typename from roomtype ”Set mrc=ExecuteSQL(txtSQL,MsgText> If Not mrc.EOF ThenDo While Not mrc.EOFcboItem(0>.AddItem Trim(mrc.Fields(0>>mrc.MoveNextLoopcboItem(0>.ListIndex=0Else‘显示记录内容MsgBox “请先进行客房标准设置 ! ”,vbOKOnly+vbExclamation, “警告”cmdSave.Enabled=FalseExit SubEnd Ifmrc.CloseElseIf gintRmode=2 Then‘判断是否处于修改状态Set mrcc=ExecuteSQL(txtSQL,MsgText>‘设置SQL 语句显示当前选择记录pN9LBDdtrdIf mrcc.EOF=False ThenWith mrcctxtItem(0>=.Fields(0>For intCount=1 To 2If Not IsNull(.Fields(intCount+1>>Then‘ 判断内容是否为空txtItem(intCount>=.Fields(intCount+1>End IfNext intCounttxtItem(3>=.Fields(5>txtSQL=”select DISTINCT typename fromroomtype ”Set mrc=ExecuteSQL(txtSQL,MsgText>If Not mrc.EOF ThenDo While Not mrc.EOFcboItem(0>.AddItem Trim(mrc.Fields(0>>mrc.MoveNextLoopcboItem(0>.ListIndex=0ElseMsgBox“ 请先进行客房标准设置! ”,vbOKOnly+vbExclamation, “警告”cmdSave.Enabled=FalseExit SubEnd Ifmrc.CloseEnd WithEnd Ifmrcc.CloseMe.Caption=Me.Caption&“修改”End IfmblChange=FalseEnd SubPrivate Sub cmdSave_Click(>‘单击保存按钮触发事件Dim intCount As IntegerDim sMeg As StringDim mrcc As ADODB.RecordsetDim Msgtext As StringFor intCount=0 To 3If Trim(TxtItem(intCount>&”” >=””ThenSelect Case intCountCase 0sMeg=“客房编号”Case 1sMeg=“客房位置”End SelectsMeg=sMeg&“不能为空!”MsgBox sMeg,vbOKOnly+vbExclamation,“警告”txtItem(intCount>.SetFocusExit SubEnd IfNext intCountIf gintRmode=1 Then‘判断是否有重复记录txtSQL=”select*from rooms where roomNO=‘ ”&Trim(txtItem(0>>&”’” DJ8T7nHuGTSet mrc=ExecuteSQL(txtSQL,msgText>If mrc.EOF=False ThenMsgBox“已经存在此客房编号地记录!” ,vbOKOnly+vbExclamation, “警告”txtItem(0>.SetFocusExit SubEnd Ifmrc.CloseEnd IfIf gintRmode=2 Then‘判断是否处于修改状态txtSQL=”delete from rooms where roomNO=‘ ”&Trim(txtItem(0>>&”’” QF81D7bvUASet mrc=ExecuteSQL(txtSQL,MsgText>End IftxtSQL=”select*from rooms ”‘再加入新记录Set mrc=ExecuteSQL(txtSQL,MsgText>mrc.AddNew‘为数据库对象添加记录mrc.Fields(0>=Trim(txtItem(0>>mrc.Fields(1>=Trim(txtItem(0>>For intCount=1 To 2If Trim(txtItem(intCount>& ”” >=”” Thenmrc.Fields(intCount+1>=NullElsemrc.Fields(intCount+1>=Trim(txtItem(intCount>>End IfNext intCountmrc.Fields(4>=””mrc.Fields(5>=Trim(txtItem(3>>mrc.Updatemrc.CloseIf gintRmode=1 ThenFor intCount=0 To 3txtItem(intCount>=””Next intCountmblChange=FalseIf flagRedit ThenUnload frmRoomfrmRoom.txtSQL=”select*from rooms ”‘重新显示数据frmRoom.ShowEnd IfElseIf gintRmode=2 ThenUnload MeIf flagRedit ThenUnload frmRoomEnd IffrmRoom.txtSQL=”select*from rooms”frmRoom.ShowEnd IfEnd Sub·修改客房信息Private Sub menuModifyroom_Click(>‘选择修改房间信息,触menuModifyroom 地 Click事件,程序判断为修改状态后 , 首先删除原有记录 , 然后把新内容加入到数据库中4B7a9QFw9hDim intCount As IntegerIf flagRedit Then‘判断记录窗体是否打开If frmRoom.msgList.Rows>1 Then‘判断客房信息列表内容是否为空gintRmode=2‘设置为修改状态intCount=frmRoom.msgList.Row‘纪录当前记录位置frmRoom1.txtSQL=”select*from rooms whereroomNO=’” &Trim(frmRoom.msgList.TextMatrix(intCount,1>>&”’” ix6iFA8xoXfrmRoom1.ShowElseCall menuAddroom_Click‘添加记录End IfElsefrmRoom.txtSQL=”select*from rooms”frmRoom.ShowEnd IfEnd Sub·删除客房信息Private Sub menuDeleteroom_Click(>Dim txtSQL As StringDim intCount As IntegerDim mrc As ADODB.RecordsetDim MsgText As StringIf flagTedit ThenIf frmRoom.msgList.Rows>1 Then ‘判断客房信息列表内容是否为空 If MsgBox( “真地要删除这条文件记录么?” ,vbOKCancel+vbExclamation,“警告” >=vbOK Then wt6qbkCyDEintCount=frmRoom.msgList.Row‘记载当前记录位置txtSQL=”delete from rooms where roomNO=‘” &Trim(frmRoom.msgList.TextMatrix(intCount,1>&”’”Kp5zH46zRkSet mrc=ExecuteSQL(txtSQL,MsgText>‘执行删除操作Unload frmRoomfrmRoom.txtSQL=”select*from rooms ”frmRoom.ShowEnd IfEnd IfEnd IfEnd Sub·查询客房信息Private Sub From_Load(>‘载入窗体时,将自动加入所有记录地入库时间Dim i As IntegerDim j As IntegerDim sSql As StringDim txtSQL As StringDim MsgText As StringDim mrc As ADODB.Recordsettx tSQL=”select DISTINCT typename from roomtype ” ‘初始化客房种类Yl4HdOAA61Set mrc=ExecuteSQL(txtSQL,MsgText>If Not mrc.EOF ThenDo While Not mrc.EOFCombo1.AddItem Trim(mrc.Fields(0>>Mrc.MoveNextLoopCombo1.ListIndex=0ElseMsgBox “请先进行客房标准设置! ”,vbOKOnly+vbExclamation, ”警告”Exit SubEnd Ifmrc.CloseEnd SubPrivate Sub cmdOK_Click(>‘设置完查询内容和方式后,单击cmdOk按钮查询Dim sQSql As StringIf chkItem(0>.Value=vbChecked ThensQSql=”roomNO=’”&Trim(txtItem(0>& ””>&”’”End IfIf chkItem(1>.Value=vbChecked ThenIf Trim(sQSql&”” >=”” ThensQSql=”roomtype=’” &Trim(Combo1&”” >&”’”ElsesQSql=sQSql&”and roomtype= ’” &Trim(Combo1&”” >&”’”End IfEnd IfIf Trim(sQSql>=”” ThenMsgBox “请设置查询条件!” ,vbOKOnly+vbExclamation, “警告” Exit SubElseIf flagRedit ThenUnload frmRoomEnd IffrmRoom.txtSQL=”select*from rooms where ”&sQSqlfrmRoom.ShowEnd IfMe.HideEnd Sub⑹订房信息管理模块地创建订房信息管理模块主要实现如下功能:·查询剩余客房信息·添加订房信息·修改订房信息·删除订房信息·查询订房库信息具体实现代码如下:Private Sub From_Load(> ‘载入窗体时 , 程序将自动加入客房种类和客房单价Dim txtSQL As StringDim MsgText As StringDim mrc As ADODB.RecordsettxtSQL=”select distinct typename from roomtype”‘选择所有客房种类 ch4PJx4BlISet mrc=ExecuteSQL(txtSQL,MsgText>If Not mrc.EOF ThenDo While Not mrc.EOFCombo1(0>.AddItem mrc.Fields(0>mrc.MoveNextLoopEnd Ifmrc.ClosetxtSQL=”select distinct price from roomtype”Set mrc=ExecuteSQL(txtSQL,MsgText>If Not mrc.EOF ThenDo While Not mrc.EOFCombo1(1>.AddItem mrc.Fields(0>Combo1(2>.AddItem mrc.Fields(0>mrc.MoveNextLoopEnd Ifmrc.CloseEnd SubPrivate Sub cmdOK_Click(>Dim sQSql As StringIf chkItem(0>.Value=vbChecked ThensQSql=”roomtype=’” &Trim(Combo1(0>&”” >&”’” End ifIf chkItem(1>.Value=vbChecked ThenIf Trim(sQSql&”” >=”” ThenIf Trim(Combo1(1>&”” ><>”” AndTrim(Combo1(2>&”” ><>””qd3YfhxCzoThensQSql=”roomprice<= ’” &Trim(Combo1(1>&”” >&Androomprice >=’” &Trim(Combo1(2>&”” >”’”E836L11DO5ElseIf Trim(Combo1(1>&”” >=”” AndTrim(Combo1(2>&”” ><>”” Then S42ehLvE3MsQSql=”roomprice >= ’” &Trim(Combo1(2>&”” >&”’”ElseIf Trim(Combo1(1>&”” ><>”” And Trim(Combo1(2>&””=”” Then501nNvZFissQSql=”roomprice<= ’” &Trim(Combo1(1>&”” >&”’”End IfElseIf Trim(Combo1(1>&”” ><>”” AndTrim(Combo1(2>&”” ><>”” Then jW1viftGw9sQSql=sQSql&”androomprice>= ’” &Trim(Combo1(1>&”” >&”’ androomprice>=’” &Trim(Combo1(2>&”” >&”’” xS0DOYWHLPElseIf Trim(Combo1(1>&”” >=”” AndTrim(Combo1(2>&”” ><>””Then LOZMkIqI0w sQSql=sQSql&”androomprice>=’” &Trim(Combo1(2>&”” >&”’” ZKZUQsUJedElseIf Trim(Combo1(1>&”” ><>”” AndTrim(Combo1(2>&”” >=”” Then dGY2mcoKtTsQSql=sQSql&”androomprice<= ’” &Trim(Combo1(1>&”” >&”’”rCYbSWRLIAEnd IfEnd IfIf Trim(sQSql>=”” ThenMsgBox“请设置查询条件 ! ”,vbOKOnly+vbExclamation, “警告”Exit SubElseIf flagRedit ThenUnload frmRoomEnd IffrmRoom.txtSQL=”select*from rooms where”&sQSql&”andputup ”<>’y’”FyXjoFlMWhfrmRoom.ShowflagSedit=TrueEnd IfMe.HideEnd SubPrivate Sub From_Load(>‘添加订房信息,载入窗体时把所有未预定地客房信息加入其中TuWrUpPObXDim sSql As StringDim intCount As IntegerDim MsgText As StringIf flagSedit Then‘判断打开方式Set mrc=ExecuteSQL(txtSQL,MsgText>If Not mrc.EOF ThenFor intCount=0 To 3cboItem(intCount>.AddItem mrc.Fields(intCount>cboItem(intCount>.ListIndex=0Next intCounttxtItem(5>=mrc.Fields(5>End Ifmrc.ClosetxtNo=GetRkno(>gintBmode=1ElseIf gintBmode=1 ThenMe.Caption=Me.Caption&“添加”txtSQL=”select DISTINCT roomNO from rooms whereputup<>’y’”7qWAq9jPqESet mrc=ExecuteSQL(txtSQL.MsgText>If Not mrc.EOF ThenDo While Not mrc.EOFcboItem(0>.AddItem Trim(mrc.Fields(0>>mrc.MoveNextLoopElseMsgBox“请先进行客房登记!” ,vbOKOnly+vbExclamation,“警告”cmdSave.Enabled=FalseExit SubEnd Ifmrc.ClosetxtNo=GetRknoElseIf gintBmode=2 ThenSet mrc.ExecuteSQL(txtSQL,MsgText>If mrc.EOF ThenWith mrctxtNO=!booknoFor intCount=0 To 1If Not IsNull(.Fields(intCount+1>> ThentxtItem(intCount>=.Fields(intCount+1>End IfNext intCountcboItem(0>.AddItem !roomnocboItem(0>.ListIndex=0For intCount=2 To 4If Not IsNull(.Fields(intCount+2>> ThentxtItem(intCount>=.Fields(intCount+2>End IfNext intCountEnd WithEnd Ifmrc.CloseMe.Caption=Me.Caption&“修改”txtSQL=”select*from rooms where roomNO=’”&Trim(cboItem(0>>& ”’”llVIWTNQFkSet mrc=ExecuteSQL(txtSQL,MsgText>If Not mrc.EOF ThenFor intCount=1 To 3cboItem(intCount>.AddItem mrc.Fields(intCount>cboItem(intCount>.ListIndex=0Next intCounttxtItem(5>=mrc.Fields(5>End Ifmrc.CloseEnd IfEnd IfmblChange=FalseEnd SubPrivate Sub cmdSave_Click(>‘添加记录到数据库中Dim intCount As IntegerDim sMeg As StringDim mrcc As ADODB.RecordsetDim MsgText As StringFor intCount=0 To 3‘判断输入内容是否为空If Trim(txtItem(intCount>&”” >=””ThenSelect Case intCountCase 0sMeg=“顾客姓名”Case 1sMeg=“身份证号码”Case 2sMeg=“折扣”Case 3sMeg=“入住时间”End SelectsMeg=sMeg&“不能为空 ! ”MsgBox sMeg,vbOKOnly+vbExclamation, “警告”txtItem(intCount>.SetFocusExit SubEnd IfNext intCountFor intCount=0 To 3If Trim(vboItem(intCount>&”” >=”” ThenSelect Case intCountCase 0sMeg=“客房编号”Case 1sMeg=“客房种类”Case 2sMeg=“客房位置”Case 3sMeg=“客房单价”End SelectsMeg=sMeg&“不能为空!”MsgBox sMeg,vbOKOnly+vbExclamation,“警告”cboItem(intCount>.SetFocusExit SubEnd IfNext intCountIf IsDate(txtItem(2>> ThentxtItem(2>=Format(txtItem(2>,”yyyy -mm-dd”>ElseMsgBox“入库时间应输入日期(yyyy-mm-dd>! ”,vbOKOnly+vbExclamation,”警告” yhUQsDgRT1txtItem(2>.SetFocusExit SubEnd IfFor intCount=1 To 3 Step 2If Not IsNumeric(txtItem(intCount>> ThenMsgBox“请输入数字” ,vbOKOnly+vbExclamation, “警告”txtItem(intCount>.SetFocusExit SubEnd IfNext intCountIf gintBmode =2 Thenwhere txtS QL=”delete from bookingbookno=’” &Trim(txtNo>& ”’”MdUZYnKS8ISet mrcc=ExecuteSQL(txtSQL,MsgText>End IftxtSQL=”select*from booking”Set mrcc=ExecuteSQL(txtSQL,MsgText>mrcc.AddNewmrcc.Fields(0>=txtNOFor intCount=0 To 1mrcc.Fields(intCount+1>=txtItem(intText>Next intCountmrcc.Fields(3>=cboItem(0>For intCount=2 To 4mrcc.Fields(intCount+2>=txtItem(intCount>Next intCountmrcc.Fields(8>=0mrcc.Updatemrcc.ClosetxtSQL=”select*from rooms where roomNO=’”&Trim(vboItem(0>>& ”’”09T7t6eTnoSet mrcc=ExecuteSQL(txtSQL,MsgText>If Not mrcc.EOf Thenmrcc!putup= ”y”End Ifmrcc.Updatemrcc.CloseIf gintBmode=1 ThenMsgBox“添加订房信息成功 ! ”,vbOKOnly+vbExclamation, “添加订房消息”Unload MeIf flagBedit ThenUnload frmBookinEnd IffrmBookin.txtSQL= ”selectbookno,customname,customID,roomno,indate,discount,inmemo from booking whereamount=’0’”e5TfZQIUB5frmBookin.ShowElseMsgBox “修改订房信息成功 ! ”,vbOKOnly+vbExclamation, “修改订房信息”Unload MeIf flagBedit ThenUnload frmBookinEnd IffrmBookin.txtSQL= ”selectbookno,customname,customID,roomno,indate,discount,inmemo from booking where amount=’0’”s1SovAcVQMfrmBookin.ShowEnd IfEnd Sub⑺结算信息管理模块地创建结算信息管理模块主要实现如下功能:·添加结算信息·修改结算信息·查询结算信息具体实现代码如下:Private Sub From_Load(>‘窗体载入时,自动加入所有未结算客房信息Dim sSql As StringDim intCount As IntegerDim MsgText As StringIf gintCmode=1 Then ‘判断是否处于添加状态Me.Caption=Me.Caption& “添加”txtSQL=”select DISTINCT roomno from booking whereamount=’0’”‘初始化客房编号 , 选择所有未结算客房编号GXRw1kFW5s Set mrc=ExecuteSQL(txtSQL,MsgText>If Not mrc.EOF ThenDo While Not mrc.EOFcboItem(0>.AddItem Trim(mrc!roomno>mrc.MoveNextLoopElseMsgBox“没有顾客入住 ! ”,vbOKOnly+vbExclamation, cmdSave.Enabled=FalseExit SubEnd Ifmrc.CloseElseIf gintCmode=2 Then‘判断是否处于修改状态Set mrc=ExecuteSQL(txtSQL,MsgText>If mrc.EOF=False ThenWith mrctxtNo =mrc.Fields(0>For intCount=0 To 1txtItem(intCount>=.Fields(intCount+1>Next intCountcboItem(0>.AddItem.fields(3>cboItem(0>.ListIndex=0For intCount=2 To 3If Not IsNull(.Fields(intCount+2>> ThentxtItem(intCount>=.Fields(intCount+2>End IfNext intCounttxtItem(5>=.Fields(6>txtItem(4>=.Fields(7>End WithEnd Ifmrc.ClosetxtSQL=”select*from rooms “警告”whereroomNO=’” &cboItem(0>&”’”UTREx49Xj9 Set mrc=ExecuteSQL(txtSQL,MsgText>If mrc.EOF=False ThenWith mrcFor intCount=1 To 3cboItem(intCount>.AddItem.Fields(intCount>cboItem(intCount>.ListIndex=0Next intCountEnd WithEnd If。
目录:一.概念结构设计二.数据字典三.E-R图四.数据库逻辑结构设计一.概念结构设计建立一个酒店前台管理系统,方便酒店的信息管理和部门管理。
该前台管理系统要求具备以下几个主要功能1.登记客人的基本信息,进行客房分配,建立客人账单和客人在店数据文件;2.计算客人的购物,餐饮消费;3.计算客人的总消费金额,以便结账处理;4.保留熟客的历史档案信息。
二.数据字典客 户 信 息项数据类型 长度 含义说明性别 字符型 20 身份标识 姓名 字符型10性别标识 年龄 整形10身份证号码 整形50身份验证联系方式 整形50联系方式入住日期 日期型8名称 编号 组成 数据量 存取频率房源信息D2房号,楼层,状态,已预定,已清理.....500 不定期客户在店 D3门卡号,姓名,性别,证件号,入住日期.....200 不定期客户消费D4项目编号,类型,项目名,价格,计量单位....1000 不定期房型类 D6类别,名称,普通价,优惠价.....30 固定价格表D8编号,名称,类别,细目,价格.....100 固定三.E-R 图1.入住单预付款操作员姓名结算方式入住天数门卡号2.客户消费项目编号门卡号项目名计量单位预付款金额3.房型表优惠价普通价类别名称长包价4.房源信息楼层状态已清理已预定房号5.客户在店门卡号性别入住日期姓名证件号电话6.总E-R 图入住单房源信息房型表客户在店客户消费分配对应选择门卡号预付款入住天数操作员姓名结算方式已入住已清理已预订状态房号楼层占用普通价类别长包价优惠价名称登记门卡号性别入住日期姓名证件号电话数量时间项目编码金额预付款计量单位项目名门卡号四.数据库逻辑结构设计客户在店(门卡号 ,证件号,姓名,性别,入住日期,电)话 .....顾客消费(项目编码,门卡号,项目名,金额,计量单位,预付款....)入住单(门卡号,姓名,预付款,结算方式,入住天数,操作员.....))房源信息(房号,楼层,状态,已预定,已清理.....)房型表(类别,名称,普通价,长包价,优惠价.....。
酒店管理系统酒店管理系统第1页,共15页酒店管理系统一.酒店管理系统的需求分析用户的需求具体体现在各种信息的提供、用户的需求具体体现在各种信息的提供、保存、保存、更新和查询等方面,更新和查询等方面,这就要这就要求数据库结构能充分满足各种信息的输出和输入。
收集基本数据、数据结构以及数据处理的流程,得出本系统所处理的数据流程。
数据处理的流程,得出本系统所处理的数据流程。
针对一般酒店客房信息管理系统的需求,内容和流程分析,设计下面的数据项和数据结构:项和数据结构: 员工标准信息,包括的数据项有:员工编号,姓名,性别,出生日期,工龄,密码,电话,备注等。
密码,电话,备注等。
客户标准信息,包括的数据项有:客户编号,性名,性别,出生日期,身份证号,手机,备注等。
证号,手机,备注等。
客房标准信息,包括的数据项有:客房编号,类型编号,状态,备注等。
客房标准信息,包括的数据项有:客房编号,类型编号,状态,备注等。
类型标准信息,包括的数据项有:类型编号,类型名称,费用,总量,剩余量,备注等。
量,备注等。
订单标准信息,包括的数据项有:订单编号,员工编号,客户编号,客房编号,时间,押金,备注等。
号,时间,押金,备注等。
退房标准信息,包括的数据项有:员工编号,客户编号,客房编号,时间,备注等。
备注等。
二.概念结构设计:经过对酒店一般形式的调查,了解到了该系统包括的实体类型有:经过对酒店一般形式的调查,了解到了该系统包括的实体类型有: 员工、客户、客房等。
员工、客户、客房等。
经过分析画出了“酒店管理系统”数据库的E-R 图,分别如图1~图6所示:所示:图-1 员工实体员工实体E-R 图 员工员工 员工编号员工编号 姓名姓名 性别性别 出生日期出生日期 工龄工龄 密码密码电话电话备注备注图-2 客户实体客户实体E-R 图图-3 客房实体客房实体E-R 图客户客户客户编号客户编号 姓名姓名性别性别 出生日期出生日期 身份证号身份证号手机手机备注备注客房客房客房编号客房编号 类型编号类型编号 状态状态备注备注图-4 类型实体类型实体E-R 图图-5 订单实体订单实体E-R 图图-6 退房实体退房实体E-R 图 通过对个实体之间联系的分析,将局部E-T 图综合成全局E-R 图,类型类型类型编号类型编号 类型名称类型名称 费用费用总量总量 剩余量剩余量 备注备注订单订单订单编号订单编号 员工编号员工编号客户编号客户编号 客房编号客房编号 时间时间押金押金备注备注退房退房员工编号员工编号 客房编号客房编号客户编号客户编号 时间时间备注备注如图-7所示:所示:图-7 全局E-R 图三.逻辑结构设计:根据概念设计的结果,将其转换为关系模型:将其转换为关系模型:员工(员工编号,姓名,性别,出生日期,工龄,密码,电话,备注)员工(员工编号,姓名,性别,出生日期,工龄,密码,电话,备注) 客户(客户编号,性名,性别,出生日期,身份证号,手机,备注)客户(客户编号,性名,性别,出生日期,身份证号,手机,备注) 客房(客房编号,类型编号,状态,备注)客房(客房编号,类型编号,状态,备注)类型(类型编号,类型名称,费用,总量,剩余量,备注)类型(类型编号,类型名称,费用,总量,剩余量,备注)订单(订单编号,员工编号,客户编号,客房编号,时间,押金,备注)订单(订单编号,员工编号,客户编号,客房编号,时间,押金,备注) 退房(员工编号,客户编号,客房编号,时间,备注)退房(员工编号,客户编号,客房编号,时间,备注)四.物理结构设计:1.员工表列名列名数据类型数据类型是否允许为空是否允许为空默认值默认值是否为主键是否为主键员工编号员工编号 Char(10) 否 是 姓名姓名 Char(10) 否性别性别 Char(2) 否 男 出生日期出生日期 Smalldatetime工龄工龄 Int 密码密码 Char(6) 否 电话电话Char(20)客户员工客房客房 退房退房住宿住宿n离开离开m登记登记管理管理分类分类类型类型预定预定 登记登记订单订单n mmnnm mmnnmn备注备注Text2.客户表列名列名数据类型数据类型 是否允许为空是否允许为空默认值默认值 是否为主键是否为主键客户编号客户编号 Char(10) 否 是 姓名姓名 Char(10)否性别性别 Char(2) 否 男 出生日期出生日期 Smalldatetime 身份证号身份证号 Char(18) 否 手机手机 Char(20) 备注备注Text3.客房表列名列名 数据类型数据类型是否允许为空是否允许为空默认值默认值是否为主键是否为主键客房编号客房编号 Char(6) 否是类型编号类型编号 Char(2) 否 状态状态 Char(4) 备注备注Text4.类型表列名列名数据类型数据类型 是否允许为空是否允许为空默认值默认值是否为主键是否为主键类型编号类型编号 Char(2)否是类型名称类型名称 Char(16) 否 费用费用 Int 总量总量 Int 剩余量剩余量 Int 备注备注Text5.订单表列名列名数据类型数据类型 是否允许为空是否允许为空默认值默认值是否为主键是否为主键订单编号订单编号 Char(10) 否 是 员工编号员工编号 Char(10) 客户编号客户编号 Char(10) 客房编号客房编号Char(6)时间时间SmalldatetimeGETDA TE()押金押金 Int备注备注Text6.退房表列名列名数据类型数据类型 是否允许为空是否允许为空默认值默认值是否为主键是否为主键员工编号员工编号 Char(10) 客户编号客户编号 Char(10) 客房编号客房编号 Char(5) 时间时间 SmalldatetimeGETDA TE()备注备注Text题目: (一)1.用T-SQL 语句创建数据库CREATE DATABASE 酒店管理系统酒店管理系统 ON PRIMARY(NAME ='酒店管理系统_data1',FILENAME ='E:\SQL\酒店管理系统\酒店管理系统_data1.mdf',SIZE =5,MAXSIZE =UNLIMITED ,FILEGROWTH =2), FILEGROUP FGROUP(NAME ='酒店管理系统_data2',FILENAME ='E:\SQL\酒店管理系统\酒店管理系统_data2.ndf',SIZE =5,MAXSIZE =UNLIMITED , FILEGROWTH =2) LOG ON(NAME ='酒店管理系统_log1',FILENAME ='E:\SQL\酒店管理系统\酒店管理系统_log1.ldf',SIZE =1010, ,MAXSIZE =UNLIMITED , FILEGROWTH =4) GO2.用T-SQL 语句创建所有的表及设置主键CREATE TABLE 员工表员工表(员工编号员工编号CHAR (1010)) NOT NULL PRIMARY KEY , 姓名姓名CHAR (1010)) NOT NULL, 性别性别CHAR (2) NOT NULL, 出生日期出生日期 SMALLDATETIME , 工龄工龄INT , 密码密码CHAR (6) NOT NULL, 电话电话 CHAR (2020), ), 备注备注TEXT ) GOCREATE TABLE 客户表客户表 (客户编号客户编号CHAR (1010)) NOT NULL PRIMARY KEY , 姓名姓名CHAR (1010)) NOT NULL, 性别性别CHAR (2) NOT NULL, 出生日期出生日期SMALLDATETIME , 身份证号身份证号 CHAR (1818)) NOT NULL, 手机手机CHAR (2020), ), 备注备注TEXT ) GOCREATE TABLE 客房表客房表(客房编号客房编号CHAR (6) NOT NULL PRIMARY KEY , 类型编号类型编号CHAR (2) NOT NULL, 状态状态 CHAR (4), 备注备注TEXT ) GOCREATE TABLE 类型表类型表 (类型编号类型编号CHAR (2) NOT NULL PRIMARY KEY , 类型名称类型名称CHAR (1616)) NOT NULL, 费用费用 INT , 总量总量INT , 剩余量剩余量 INT , 备注备注TEXT ) GOCREATE TABLE 订单表订单表(订单编号订单编号CHAR (1010)) NOT NULL PRIMARY KEY , 员工编号员工编号CHAR (1010), ), 客户编号客户编号CHAR (1010), ), 客房编号客房编号CHAR (6), 时间时间SMALLDATETIME , 押金押金INT ,备注备注TEXT ) GOCREATE TABLE 退房表退房表 (员工编号员工编号CHAR (1010), ), 客户编号客户编号CHAR (1010), ), 客房编号客房编号CHAR (6), 时间时间SMALLDATETIME , 备注备注TEXT ) GO3.用T-SQL 语句给需要设外键的表设置外键ALTER TABLE 客房表客房表 ADD CONSTRAINT FK_类型表_客房表客房表 FOREIGN KEY (类型编号) REFERENCES 类型表(类型编号) GOALTER TABLE 订单表订单表 ADD CONSTRAINT FK_员工表_订单表订单表 FOREIGN KEY (员工编号) REFERENCES 员工表(员工编号) GOALTER TABLE 订单表订单表 ADD CONSTRAINT FK_客户表_订单表订单表 FOREIGN KEY (客户编号) REFERENCES 客户表(客户编号) GOALTER TABLE 订单表订单表 ADD CONSTRAINT FK_客房表_订单表订单表 FOREIGN KEY (客房编号) REFERENCES 客房表(客房编号) GOALTER TABLE 退房表退房表 ADD CONSTRAINT FK_员工表_退房表退房表 FOREIGN KEY (员工编号) REFERENCES 员工表(员工编号) GOALTER TABLE 退房表退房表ADD CONSTRAINT FK_客户表_退房表退房表 FOREIGN KEY (客户编号) REFERENCES 客户表(客户编号) GOALTER TABLE 退房表退房表 ADD CONSTRAINT FK_客房表_退房表退房表FOREIGN KEY (客房编号) REFERENCES 客房表(客房编号)GO4.用T-SQL语句给表加上check约束、UNIQUE约束、DEFAULT约束 ALTER TABLE 员工表员工表ADD CONSTRAINT CK_员工性别性别 IN('男','女'))员工性别 CHECK(性别GOALTER TABLE 员工表员工表ADD CONSTRAINT DF_员工性别性别员工性别 DEFAULT('男') FOR 性别GOALTER TABLE 客户表客户表ADD CONSTRAINT CK_客户性别客户性别 CHECK(性别性别 IN('男','女'))GOALTER TABLE 客户表客户表ADD CONSTRAINT DF_客户性别性别客户性别 DEFAULT('男') FOR 性别GOALTER TABLE 客户表客户表ADD CONSTRAINT UQ_身份证号身份证号 UNIQUE(身份证号)GOALTER TABLE 订单表订单表ADD CONSTRAINT DF_订房时间时间订房时间 DEFAULT(GETDATE()) FOR 时间GOALTER TABLE 退房表退房表ADD CONSTRAINT DF_退房时间退房时间 DEFAULT(GETDATE()) FOR 时间时间GO5.使用insert语句初始化数据库INSERT INTO 员工表(员工编号,姓名,性别,出生日期,工龄,密码,电话)VALUES('010*******','张三','男','1982-2-1',2,'123401','0758-*******')INSERT INTO 客户表(客户编号,姓名,性别,出生日期,身份证号,手机)VALUES('1009010001','王恒','女',461324************,,'136********')'1987-8-16',461324************INSERT INTO 客房表(客房编号,类型编号,状态)VALUES('120501','12','空')INSERT INTO 类型表(类型编号,类型名称,费用,总量,剩余量)VALUES ('12','豪华双人房','480','20','20')INSERT INTO 订单表(订单编号,员工编号,客户编号,客房编号,押金)VALUES ('1005010001','010*******','1009010001','120506','50')INSERT INTO 退房表(员工编号,客户编号,客房编号) VALUES ('010*******','1009010001','210301')(二)1、流程控制语句与函数(1)、用上while 语句根据入住天数,查询客户应付费用declare @y @y int int declare @x @x int int set @x @x==0 set @y @y==0while @x @x<><>datediff (day ,'2010-12-10',getdate ()) begin beginset set @x @x==@x @x++1 set set @y @y==@x @x**300 end endselect fare fare==@y(2)、用上if if……else 语句 查出普通房中,单人房多少钱。
宾馆客房管理系统数据库设计报告(精选五篇)第一篇:宾馆客房管理系统数据库设计报告宾馆客房管理系统数据库设计报告摘要:本系统是宾馆客房管理系统,该报告主要介绍了数据库的设计,建立,主要功能的实现。
数据库系统包括员工管理、客房管理、顾客管理几个大块。
主要实现了登记功能,预订功能,多种方法查询顾客功能,查看客房状态功能,操作人员对系统的修改功能,以及结账报表功能。
一、需求分析(1)具有方便的登记、结账功能,以及预订客房的功能,能够支持团体登记和团体结账。
(2)能快速、准确地了解宾馆内的客房状态,以方便管理者决策。
(3)提供多种手段查询客人的信息。
(4)具备一定的维护手段,有一定权利的操作人员在密码的支持下才可以更改房价、房间类型、增减客房。
(5)完善的结账报表系统。
二、E-R关系图三、关系表本系统有八个表,分别是职工信息表(staffinfo)、顾客信息表(custmerinfo)、经理信息表(managerinfo)、客房信息表(roominfo)、客房状态表(roomstatus)、入住表(checkin)、退房表(checkout)、结账订单表(orderinfo)。
1,职工信息表(staffinfo)2,顾客信息表(custmerinfo)3,经理信息表(managerinfo)4,客房信息表(roominfo)5,客房状态表(roomstatus)6,入住表(checkin)7,退房表(checkout)8,结账订单表(orderinfo)四、范式分析本系统所有的表均为BCNF,职工和经理表由各自的工作编号为主码,并且可以决定其他所有属性,顾客表由身份证号做为主码,同理,客房的房间号可以决定其他所有属性。
五、功能分析 1,登记功能本系统采用存储过程实现登记功能,顾客前来预订客房,由工作人员调用存储过程向顾客表中插入该顾客信息,完成登记。
create procedure register@身份证号 varchar(20),@姓名 varchar(10),@性别 char(5),@电话 char(15), char(10)asinsert into custmerinfovalues(@身份证号,@姓名,@性别,@电话,@员工编号)@员工编号2,预订功能采用存储过程实现,由工作人员调用存储过程,在入住表中插入相应信息,并且设计触发器,在预定的同时在客房状态表中修改客房状态为“已入住”。
数据库设计_酒店管理系统酒店管理系统数据库设计是一个关键的环节,合理的数据库设计能够提高酒店管理系统的性能和效率。
一个高效的酒店管理系统数据库设计应该包含以下内容:一、酒店管理系统的实体分析酒店管理系统的实体包括:酒店、客房、员工、顾客、订单等。
通过对这些实体进行分析,可以确定每个实体的属性和关系。
1.酒店实体2.客房实体客房实体包含以下属性:客房ID、客房类型、客房价格、客房状态等。
客房与酒店之间是多对一的关系,即一个酒店可以有多个客房,但一个客房只属于一个酒店。
3.员工实体员工实体包含以下属性:员工ID、员工姓名、员工职位、员工工资等。
员工与酒店之间是多对一的关系,即一个酒店可以有多个员工,但一个员工只属于一个酒店。
4.顾客实体5.订单实体订单实体包含以下属性:订单ID、顾客ID、酒店ID、客房ID、订单状态等。
订单与顾客、酒店和客房之间是多对一的关系,即一个订单属于一个顾客、一个酒店和一个客房。
二、酒店管理系统的关系分析通过对实体之间的关系进行分析,可以确定各个实体之间的关系。
1.酒店与客房之间的关系一个酒店可以有多个客房,一个客房只属于一个酒店,这是一对多的关系。
酒店与客房之间通过酒店ID进行关联。
2.酒店与员工之间的关系一个酒店可以有多个员工,一个员工只属于一个酒店,这是一对多的关系。
酒店与员工之间通过酒店ID进行关联。
3.订单与顾客之间的关系一个订单属于一个顾客,一个顾客可以有多个订单,这是一对多的关系。
订单与顾客之间通过顾客ID进行关联。
4.订单与酒店之间的关系一个订单属于一个酒店,一个酒店可以有多个订单,这是一对多的关系。
订单与酒店之间通过酒店ID进行关联。
5.订单与客房之间的关系一个订单属于一个客房,一个客房可以有多个订单,这是一对多的关系。
订单与客房之间通过客房ID进行关联。
三、酒店管理系统的数据表设计根据以上的实体分析和关系分析,可以设计出数据库的数据表。
1.酒店表2.客房表字段:客房ID、客房类型、客房价格、客房状态、酒店ID等。
5、宾馆客房管理系统(难度系数1)
功能介绍:
1)客房数量的基本设置(例如:一楼有101,102……109九个标准间,二楼有201,202……208八个三人间,……七楼有701,702……706六个套房)根据实际考察,再进行房间价格,入住手续办理等各环节业务流程设置
2)办理入住手续(客人姓名、身份证号,家庭住址,入住客房,入住时间,预住时间,押金(>=当天客房费用+200押金))
3)客房门卡管理系统(入住时发卡;每天进行一次刷卡登记,必要时需要补交房费,否则不能够正常开锁;退房时交卡结算)
4)办理退房手续
5)日、周、月核算报表
6)网上预定及处理
注:要求图形化交互界面,友好易用。
客房房间号楼层单价类别
客人信息客人姓名、身份证号,家庭住址,入住客房,入住时间,预住时间,押金
1.客房表(客房号,楼层,客房类型,入住单价,可入住人数,清洁周期) room
2.客户表(入住编号,客户姓名,客房号,入住日期,入住天数,每天单价,入住压金,接待员)
3.订房表(订房编号,客户姓名,客户号,预计入住日期,预计入住天数,订房压金,订房日期,接待员)
4.清洁表(客房号,清洁记录,清洁人,清洁日期)
5.结算表(入住编号,入住天数,入住金额,结算员,结算日期
6.报表(入住编号。
房间号房间类别实际价押金总额操作员入住时间)。
原创宾馆管理系统数据库表的设计概述本文将介绍一个宾馆管理系统的数据库表设计方案。
宾馆管理系统是一个用于管理宾馆房间、客户、预订和入住等信息的系统,通过数据库表的设计,实现数据的存储和管理。
下面将分别介绍宾馆管理系统中的各个数据库表及其字段。
房间表(Room)该表用于存储宾馆的房间信息,包括房间号、房型、价格、是否可预订等字段。
字段名数据类型描述room_id int(11) 房间ID,主键room_number varchar(20) 房间号room_type varchar(50) 房型price decimal(10,2) 价格is_bookable tinyint(1) 是否可预订(0表示不可预订,1表示可预订)客户表(Customer)该表用于存储客户信息,包括姓名、性别、联系电话、邮箱等字段。
字段名数据类型描述customer_id int(11) 客户ID,主键name varchar(50) 姓名gender char(1) 性别(M表示男性,F表示女性)phone_number varchar(20) 联系电话email varchar(50) 邮箱预订表(Reservation)该表用于存储客户的预订信息,包括预订号、预订日期、房间ID、客户ID等字段。
字段名数据类型描述reservation_id int(11) 预订ID,主键reservation_date date 预订日期room_id int(11) 房间ID,外键,关联房间表customer_id int(11) 客户ID,外键,关联客户表入住表(CheckIn)该表用于存储客户的入住信息,包括入住号、入住日期、房间ID、客户ID、入住天数等字段。
字段名数据类型描述checkin_id int(11) 入住ID,主键checkin_date date 入住日期room_id int(11) 房间ID,外键,关联房间表customer_id int(11) 客户ID,外键,关联客户表duration int(11) 入住天数账单表(Bill)该表用于存储客户的账单信息,包括账单号、入住ID、房费、其他费用等字段。
酒店管理系统数据库设计1. 客房信息表(Room)该表包含酒店客房的各项信息,包括客房号、类型、价格、状态等。
字段:- Room_ID: 客房号(主键)- Type: 客房类型- Price: 房间价格- Status: 房间状态(已预订、空闲等)2. 客户信息表(Customer)该表包含顾客的个人信息,用于酒店管理系统进行客户管理与预订。
字段:- Customer_ID: 客户ID(主键)- Name: 客户名称- Address: 客户地址3. 订单信息表(Order)该表包含顾客预订酒店客房的订单信息,包括入住日期、离店日期、房间号、顾客ID等。
字段:- Order_ID: 订单号(主键)- Room_ID: 客房号(外键,关联Room表)- Customer_ID: 客户ID(外键,关联Customer表)- CheckIn_Date: 入住日期- CheckOut_Date: 离店日期- Total_Price: 订单总价- Payment_Method: 支付方式4. 房间设施表(Room_Facility)该表包含客房的设施信息,如空调、电视、Wi-Fi等。
字段:- Room_ID: 客房号(外键,关联Room表)- Facility_Name: 设施名称5. 员工信息表(Employee)该表包含酒店员工的个人信息。
字段:- Employee_ID: 员工ID(主键)- Name: 员工姓名- Position: 员工职位以上是一个简单的酒店管理系统数据库设计示例。
在实际应用中,可能还会涉及其他表和字段,如酒店楼层信息表、房间图片表等。
根据实际需求,数据库设计需要进一步细化和优化。
中小企业融资渠道组合分析摘要随着我国市场经济一直处于快速并稳定发展的阶段,经济体制也通过改革逐步得到了完善,中小企业的发展引起了越来越引起大众的关注。
尽管今年来年中小企业在国民经济中有了举足轻重的地位并逐步的提高,但是其中仍然还有很多问题阻碍着中小企业的发展进程,其中中小企业的融资问题是最大的障碍,成为了它们企业发展进程中的“瓶颈”。
本文通过对国内外中小企业融资渠道进行了分析调查研究,分析了我国中小企业融资渠道的问题并提出了相应的解决方法。
关键词:中小企业,融资渠道,分析目录摘要 (1)一、融资渠道定义及分类 (3)1.1 融资渠道的定义 (3)1.2 融资渠道的分类 (4)1.2.1内部筹资渠道 (4)1.2.2外部筹资渠道 (4)二、我国中小企业融资的现状 (5)2.1 我国中小企业目前的融资来源 (5)2.2我国中小企业融资的需求量难以满足 (5)2.3 中小企业对所融资金特征 (5)三、国外中小企业的融资渠道 (6)3.1 自筹资金 (6)3.2 直接融资 (6)3.3 间接融资 (6)3.4 政府的扶持基金 (6)3.4.1 财政补贴 (6)3.4.2 税收优惠 (7)3.4.3 贷款援助 (7)3.4.4 风险投资 (7)3.4.5 开辟直接融资渠道 (7)四、我国中小企业融资渠道分析 (8)4.1间接融资路径分析 (8)4.1.1传统的国有商业银行融资路径 (8)4.1.2建立中小金融机构,尤其是中小民营银行 (8)4.2直接融资路径分析 (9)4.2.1完善直接融资体系,为中小企业融资敞开大门 (9)4.2.2 利用创业投资和风险投资促进高新技术中小企业的发展 (11)4.3其他融资路径 (12)4.3.1 设立专门的金融机构为中小企业发展提供资金帮助 (12)4.3.2建立和健全对中小企业融资的信用担保体系 (12)4.3.3 逐步放开民间借贷市场,拓宽民间融资渠道 (12)五、拓宽中小企业融资渠道的方法 (13)5.1加强内部管理,提高管理水平。
(13)5.2加强财务制度的建设,增加财务信息透明度。
(13)5.3增强中小企业的抵御市场风险的能力。
(13)5.4加强中小企业的信用观念,提高企业自身素质。
(13)5.5加强政府对中小企业的扶持,完善融资的法律法规 (14)结束语 (14)参考文献 (14)引言随着经济全球化进程日趋加速,市场竞争日益激烈,中小企业发展的问题已经成为一个世界性的研究课题,中小企业的大量存在是经济发展的必然结果,也是市场竞争的内在要求,是吸收就业。
活跃市场气氛,推动经济增长,维护市场活力的前提条件,是国民经济的重要支柱。
无论是西方发达国家还是新兴工业化国家或地区,或是发展中国家,在对中小企业在国民经济中的地位和作用的认识过程中,都经历了一个由不够重视到逐步加深认识,引起重视的过程。
就我国而言。
中小企业创造的GDP已占据总量的“半壁江山”。
所以,加快中小企业的发展,己经成为国民经济持续稳定增长的有力保障。
众所周知,资金是企业发展的推动力,企业发展离不开资金的支持,而资金短缺是各国各地区中小企业发展过程中普遍存在的难题,无论是发达国家还是发展中国家对中小企业融资困难的漠视,致使中小企业融资渠道不畅,进而导致中小企业发展遭遇“瓶颈”,企业成长陷入困境。
显而易见,融资难已经成为制约中小企业发展的主要问题。
因此,我国中小企业对各种融资方式的了解与选择就显得举足轻重了。
目前,可供我国中小企业选择的融资方式多达十几种,而这几种方式则各有优劣之处,对中小企业的影响也各不相同。
中小企业的发展是关系到国民经济发展与社会稳定的大事,因此,有必要重新审视我国中小企业的融资问题,结合可供我国中小企业选则的融资方式,进一步探讨我国中小企业融资的策略。
一、融资渠道定义及分类1.1 融资渠道的定义融资渠道:它指协助企业的资金来源,主要包括内源融资和外源融资两个渠道,其中内源融资主要是指企业的自有资金和在生产经营过程中的资金积累部分;协助企业融资即企业的外部资金来源部分,主要包括直接融资和间接协助企业融资两类方式。
直接协助企业融资是指企业进行的首次上市募集资金(IPO)、配股和增发等股权协助企业融资活动,因此称其为股权融资;间接融资是指企业资金来自于银行、非银行金融机构的贷款等债权融资活动,所以也称为债务融资。
随着技术的不断发展进步和生产规模的不断扩大,仅仅依靠内部融资对一个企业的资金需求量来说是非常难满足的。
外部帮助企业融资已经成为企业获得企业资金的一个非常必不可少的手段。
债务协助企业融资和股权协助企业融资两种方式的融资共同组成了外部协助企业融资。
1.2 融资渠道的分类按照筹集资金的来源不同,我们可将企业筹资渠道划分为两种渠道:内部渠道和外部渠道。
1.2.1内部筹资渠道企业的内部筹资渠道是指企业从自己的内部开辟资金的渠道从而获取资金的渠道。
从企业内部自身开辟资金渠道一共分为三个方面:企业内部自身有企业资金、企业税利和利息的应付以及企业未使用分配的某些专项基金。
一般在企业的合并收购的过程中,企业都大部分选用这一种企业融资渠道,因为这种融资方式具有良好的保密性,由于企业不需要支付借款成本给外部,因此同时具有相对较小的风险性,但资金的数目与企业利润有着很大的关系。
1.2.2外部筹资渠道企业的外部筹资渠道是指企业在外部所开辟获取企业资金从而实现融资目的的渠道,其主要包括:银行的信用贷款资金、一些非银行金融机构的融资资金、其他企业的融资资金、民间的融资资金以及外资融资基金等。
由于企业的外部筹资的筹资速度相对内部筹资快、弹性较大、融资的资金量较大的优点,因此,在企业的并购过程中一般外部筹资是企业筹集资金的主要选择对象。
但由于外部筹资具有较差的保密性,负担的成本数额较大,因此对企业来说具有较高的融资风险,因此在选择使用中需要相当的谨慎小心。
借款筹资是企业通过向银行等金融机构贷款从而进行融资的方法,利息负债是其主要的成本来源。
一般情况下,企业可以把向银行的借款利息在纳税前用来减少企业的利润,从而实现降低企业缴纳所得税的目的,减少企业的财政负担。
向非金融机构及企业融资具有较大的操作余地空间,但由于其具有较低的透明度,国家对此做法有明确的控制规定。
若仅仅从纳税筹划方面来说,企业借款拆借资金具有最佳的效果。
企业对外发行债券和股票属于企业自身的直接融资,这种方法减免了向中间商支付利息的资金。
一般情况下,企业通过利用发行股票的方法进行企业融资与向银行借款相比,前者使企业承受的税负重,而借款融资比起向社会发行债券,前者又比后者承受的税负多。
企业内部自行筹资入股的筹资方式可以使企业减少缴纳个人所得税的费用支出。
从一般情况来看,企业用内部筹款的方式融资缴纳的所得税比从金融机构贷款缴纳的所得税多,而贷款融资方式缴纳的所得税比企业借款等筹资方式所缴纳的税负多,企业之间利用拆借资金方式所缴纳的所得税又比企业内部集资入股缴纳的所得税多得多。
二、我国中小企业融资的现状2.1 我国中小企业目前的融资来源目前中国中小企业融资渠道不宽相对而言比较狭窄,其目前主要靠自身的自我积累,换而言之,目前我国的中小企业融资状况呈现出内部融资比外源融资低占据的比重大得多的现象。
银行贷款已成为我国中小企业目前最重要的外源融资渠道之一,但银行主要以提供流动资金及国家资产为主,而提供长期信贷的可能性较小。
与此同时,抵押贷款和担保贷款是目前银行向中小型企业提供贷款的最主要的方式,因此信用度和质量高的中小企业就成为各金融机构竞争向其融资的对象,一些有很强的发展潜力但不具有较强的信贷信誉以及那些刚发展发展规模较小没有抵押物的企业,由于银行的识别能力比较迟钝,因此,这些中小企业往往被金融机构所忽视。
所以目前我国中小企业通过信用贷款的方式实现融资就出现了像这样的两极分化的现象。
2.2我国中小企业融资的需求量难以满足我国的中小企业中有超过60%的企业从没有取得过1-3年的中期或长期信贷,而将近有六成的中小企业把从金融机构进行信贷作为获得资金实现企业融资的重要的渠道。
而这种两极分化的企业融资现象使得占全国企业总数量99%的中小型企业只得到了全国贷款数额的20%左右。
2.3 中小企业对所融资金特征中小企业流动资金的需求具有短、频、快和小的特征。
就是算这些中小企业能从银行获得贷款的机会,但贷款审批需要经过很多程序,相对较为繁琐,若要等到贷款资金到位,估计也差不多丢失了商机,短期借款的目的也不复存在了;另一方面,中小企业贷款具有较大的风险性、贷款的资金数额也不大、频率频繁的特征,这几点也使得银行贷款的成本和风险大大增加,从而导致了银行贷款给中小企业的积极性大大削弱。
三、国外中小企业的融资渠道3.1 自筹资金自筹资金涉及的领域十分广,主要包括业主的自有资金;向亲朋好友借的资金;个人投资资金;风投资金;企业经营性的筹资资金;企业之间的信贷;中小企业间的互助机构的贷款资金以及一些像保险、养老基金等社会基金贷款等。
3.2 直接融资它是一种通过股票和债券的方式向社会求助公开筹集资金的融资渠道。
很显然,这种筹资方式仅仅允许一些公司制的中小企业使用,不仅如此,一般公司制企业的债券或股票是不能够用来公开上市的,它们只有在柜台上完成交易才能发行,只有一些极非常少的满足条件的公司制中小企业才被允许公开上市,或被批准允许进入“第二板块市场”来进行某些融资活动。
3.3 间接融资其主要是由各种短期、中期和长期贷款的方式构成。
贷款方式可分为抵押贷款、担保贷款和信用贷款等三个方面。
3.4 政府的扶持基金国外政府对其国内的中小企业融资有各种各样的扶持援助政策,一般可分为真服财政补贴、贷款援助、税收优惠、直接开辟融资渠道、风险投资等。
3.4.1 财政补贴财政补贴一般包含三个方面:就业补贴、出口补贴、研究开发补贴。
例如,在法国,中小企业只要对外创造一个就业的机会,政府就会对该企业给予2万—4万法郎的政府财政补贴,对于那些在连续3年内增加6名员工及以上的中小型企业,征服会给予每人1.2万—1.5万法郎的财政补贴;对于一些节能企业,企业每节约1吨石油政府也会相应的给予400法郎的财政补贴。
德国却按照《中小企业研究与技术政策总方案》专门设立一些专项基金,对它们国家的中小企业的技术开发研究提供财政上的补贴援助;承担一些中小企业的任务,也可得到相应的政府财政补贴。
3.4.2 税收优惠税收优惠的方式主要有降低税率、提高税收起征点、减免税收和提高固定资产折旧率等方法。
政府可以通过这些税收优惠来减少对这些中小企业的税收,最多能到达一半以上。
这些免税资金是普遍优惠的,在中小企业的生存发展中起到了生死攸关的重要。
3.4.3 贷款援助贷款援助的主要方式有:贷款担保、政府直接优惠贷款以及贷款贴息等。