您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 天津大学-数据库大作业-外卖订餐系统的数据库设计
外卖订餐系统数据库设计一.需求分析(1)数据查询:①根据用户编号查询不同用户的具体信息:输入:用户编号输出:用户名,电话,创建时间②根据餐馆编号查询不同餐馆的具体信息:输入:餐馆编号输出:餐馆名,地区,详细地址,电话,开店时间,闭店时间③根据订单编号查询不同订单的具体信息:输入:订单编号输出:下单时间,到达时间,用户评价,用户编号,餐馆编号,金额,是否交易成功④查询不同用户所收藏的餐馆的具体信息:输入:用户编号输出:餐馆编号,收藏时间⑤根据食物编号查询不同食物的具体信息:输入:食物编号输出:食物名,价格,菜系,评价⑥根据餐馆编号和食物编号查询具体某种食物的销售信息:输入:餐馆编号,食物编号输出:月销量⑦根据地区编号查找不同地区的具体信息:输入:地区编号输出:地区名,省份⑧根据原材料编号查询不同原材料的具体信息:输入:原材料编号输出:原材料名,价格,保质期(2)数据插入:①用户数据插入②餐馆数据插入③食物数据插入④订单数据插入⑤收藏数据插入⑥销售数据插入⑦地区数据输入⑧原材料数据插入⑨订单内容数据插入(3)数据修改:①用户数据修改:某用户数据变化时,输入该用户编号及需修改的属性,完成对用户表的修改。②餐馆数据修改:某餐馆数据变化时,输入该餐馆编号及需修改的属性,完成对餐馆表的修改。③食物数据修改:某食物数据变化时,输入该食物编号及需修改的属性,完成对食物表的修改④订单数据修改:某订单数据变化时,输入该订单编号及需修改的属性,完成对订单表的修改。⑤收藏数据修改:某收藏数据变化时,输入该收藏的用户编号和餐馆编号及需修改的属性,完成对收藏表的修改⑥销售数据修改:某销售数据变化时,输入销售的餐馆编号和食物编号及需修改的属性,完成对销售表的修改。⑦地区数据修改:某地区数据变化时,输入区号及需修改的属性,完成对地区表的修改。⑧原材料数据修改:某原材料数据变化时,输入原材料编号及需修改的属性,完成对原材料表的修改⑨制作数据修改:某制作数据变化时,输入食物编号和原材料编号及需修改的属性,完成对制作数据的修改⑩订单内容数据修改:某订单内容数据变化时,输入订单编号和食物编号及需修改属性,完成对订单内容数据的修改二.概念设计(1)用户实体:(2)餐馆实体:(3)食物实体:(4)订单实体:餐馆名餐馆编号地区餐馆闭店时间开店时间电话详细地址价格食物编号食物名菜系食物用户用户编号用户名电话创建时间(5)地区实体:(6)原材料实体:(7)全局E-R图:地区地区编号地区名省份订单号到达时间下单时间用户评价用户编号餐馆编号金额订单保质期原材料单位价格原材料名原材料编号是否交易成功三.逻辑设计用户(用户编号,用户名,电话,创建时间)餐馆(餐馆编号,餐馆名,地区,开店时间,闭店时间,详细地址,电话)NM地区电话MNNMM11M1MNMNM用户用户编号用户名电话下单时间下单餐馆名餐馆编号地区餐馆价格食物编号食物名菜系食物销售月销量收藏收藏时间属于地区编号地区名省份保质期原材料单位价格原材料名原材料编号制作用量开店时间详细地址闭店时间创建时间订单号到达时间用户评价用户编号餐馆编号金额订单接单订单内容数量是否交易成功食物(食物编号,食物名,价格,菜系)订单(订单号,下单时间,到达时间,评价,用户编号,餐馆编号,金额,是否交易成功)收藏(用户编号,餐馆编号,收藏时间)销售(餐馆编号,食物编号,月销量)地区(地区编号,地区名,省份)原材料(原材料编号,原材料名,保质期,单位价格)制作(原材料编号,食物编号,用量)订单内容(订单号,食物编号,数量)四.物理设计表1“外卖”表结构字段名类型特殊属性用户编号CHAR(10)PRIMARYKEY用户名CHAR(10)NOTNULL电话CHAR(11)NOTNULL,每一位‘0’~‘9’创建时间SMALLDATETIMENOTNULL表2“餐馆”表结构字段名类型特殊属性餐馆编号CHAR(10)PRIMARYKEY餐馆名CHAR(10)NOTNULL电话CHAR(11)每一位‘0’~‘9’详细地址VARCHAR(30)地区CHAR(10)FOREIGNKEY开店时间CHAR(10)闭店时间CHAR(10)表3“食物”表结构字段名类型特殊属性食物编号CHAR(10)PRIMARYKEY食物名CHAR(10)NOTNULL价格SMALLMONEY菜系CHAR(10)表4“订单”表结构字段名类型特殊属性订单CHAR(10)PRIMARYKEY下单时间CHAR(10)NOTNULL到达时间CHAR(10)评价CHAR(5)‘好’或’中’或’差’用户编号CHAR(10)FOREIGNKEY餐馆编号CHAR(10)FOREIGNKEY金额SMALLMONEY=0是否交易成功CHAR(1)NOTNULL,‘Y’或’N’表5“收藏”表结构字段名类型特殊属性用户编号CHAR(10)PRIMARYKEY,FOREIGNKEY餐馆编号CHAR(10)PRIMARYKEY,FOREIGNKEY收藏时间SMALLDATETIME表6“销售”表结构字段名类型特殊属性餐馆编号CHAR(10)PRIMARYKEY,FOREIGNKEY食物编号CHAR(10)PRIMARYKEY,FOREIGNKEY月销量INT=0表7“地区”表结构字段名类型特殊属性地区编号CHAR(10)PRIMARYKEY地区名CHAR(10)省份CHAR(10)表8“原材料”表结构字段名类型特殊属性原材料编号CHAR(10)PRIMARYKEY原材料名CHAR(10)NOTNULL单位价格SMALLMONEY=0保质期CHAR(10)表9“制作”表结构字段名类型特殊属性食物CHAR(10)PRIMARYKEY原材料CHAR(10)用量CHAR(10)表10“订单内容”表结构字段名类型特殊属性订单编号CHAR(10)PRIMARYKEY食物编号CHAR(10)数量INT=0五.数据库实现1、数据库的建立createdatabase外卖onprimary(name=外卖_data,filename='D:\外卖data.mdf')Logon(name=外卖_log,filename='D:\外卖log.ldf')2、数据表的建立use外卖gocreatetable用户(用户编号char(10)primarykey,用户名char(10)notnull,电话char(11)notnull,创建时间smalldatetimenotnull,check(电话like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))createtable餐馆(餐馆编号char(10)primarykey,餐馆名char(10)notnull,电话char(11),详细地址varchar(30),地区char(10),开店时间char(10),闭店时间char(10),foreignkey(地区)references地区(地区编号),check(电话like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))createtable食物(食物编号char(10)primarykey,食物名char(10)notnull,价格smallmoney,菜系char(10))createtable订单(订单号char(10)primarykey,下单时间char(10)notnull,到达时间char(10),评价char(5),用户编号char(10),餐馆编号char(10),金额smallmoney,是否交易成功char(1)notnull,foreignkey(用户编号)references用户(用户编号),foreignkey(餐馆编号)references餐馆(餐馆编号),check(金额0))createrulepj_ruleas@pjin('好','中','差')execsp_bindrule'pj_rule','订单.评价'createrulecj_ruleas@cjin('Y','N')execsp_bindrule'cj_rule','订单.是否交易成功'createdefaultcj_defaultas'Y'execsp_bindefault'cj_default','订单.是否交易成功'createtable收藏(用户编号char(10),餐馆编号char(10),收藏时间smalldatetime,primarykey(用户编号,餐馆编号),foreignkey(用户编号)references用户(用户编号),foreignkey(餐馆编号)references餐馆(餐馆编号),)createtable销售(餐馆编号char(10),食物编号char(10),月销量intprimarykey(餐馆编号,食物编号),foreignkey(餐馆编号)references餐馆(餐馆编号),foreignkey(食物编号)references食物(食物编号),check(月销量=0))createtable地区(地区编号char(10)primarykey,地区名char(10),省份char(10))createtable原材料(原材料编号char(10)primarykey,原材料名char(10)notnull,单位价格smallmoney,保质期char(10),check(单位价格0))createtable制作(食物char(10),原材料char(10),用量char(10),primarykey(食物,原材料))createtable订单内容(订单编号char(10),食物编号char(10),数量intprimarykey(订单编号,食物编号)check(数量0))3、数据的输入insertinto餐馆values(1,'米其林三星',12010301069,'咸水沽',300350,'8:00','24:00')insertinto餐馆values(2,'日天肘子馆',12212121354,'乐亭',300351,'9:00','24:00')insertinto餐馆values(3,'罗氏狗肉店',15462164210,'荔湾',300352,'9:00','24:00')insertinto地区values(300350,'津南区','天津')insertinto地区values(300351,'乐亭','河北')insertinto地区values(300352,'荔湾区','广东')insertinto用户values(3015201110,'yonghu',13101010000,'2017/12/2016:11:00')insertinto用户values(3015201078,'yonghu2',16032456213,'2016/2/2016:11:00')insertinto用户values(3015201079,'yonghu3',12356998564,'2016/12/216:15:00')insertinto订单values(10,'9:00','10:00','好',3015201110,1,10,'Y')insertinto订单values(11,'8:00','11:00','中',3015201078,2,15,'Y')insertinto订单values(12,'9:00','12:00','差',3015201079,3,25,'Y')insertinto食物values(01,'京酱肉丝',20,'北京菜')insertinto食物values(02,'红烧猪肘',25,'东北菜')insertinto食物values(03,'罗式乱炖',20,'粤菜')insertinto订单内容values(10,01,1)insertinto订单内容values(11,02,2)insertinto
本文标题:天津大学-数据库大作业-外卖订餐系统的数据库设计
链接地址:https://www.777doc.com/doc-2069934 .html