[数据库] 实验四 数据库设计

1329 0
Honkers 2025-3-8 19:04:55 | 显示全部楼层 |阅读模式

【实验目的】

1、掌握规范化数据库设计包括步骤及其任务、方法、结果等。

2、掌握数据库设计过程中关键文档的写法。

3、了解数据库辅助设计工具。

【实验内容】

请按下面大纲书写实验报告(请自行附页)。

(1)需求分析,给出数据字典与数据流图

(2)数据分析,设计E-R模型

(3)E-R模型转换为关系模型

(4)数据库说明

(5)创建表SQL语句

要求:其中,E-R图中至少3个以上实体,每个实体5个以上属性,至少2种以上联系。

 用户下订单后发下订单后给系统处理,系统首先根据订单判断价格信息等是否有误,然后接着除用户订单数量等等,然后将订单分类为是否付款,如果付款就准时发送订单,如果在规定时内付款则即时发订单发送给商家 

 

数据流字典:

名称来源去向所含数据结构说明
订单U1F1json类型数据格式,以键值对的形式存储用户提交的商品详情
订单信息F1

D2

json类型数据格式,以键值对的形式存储订单的是否合格信息
订单数目F2D3json类型数据格式,以键值对的形式存储处理后的订单数量
正常付款订单F2.1D4json类型数据格式,以键值对的形式存储包含了订单的付款状态信息
未正常付款订单F2.1D4json类型数据格式,以键值对的形式存储包含了订单的付款状态信息
准时处理D4F2.2json类型数据格式,以键值对的形式存储包含了订单的付款状态信息
即使处理D4F2.3json类型数据格式,以键值对的形式存储包含了订单的付款状态信息
发送订单D5S1json类型数据格式,以键值对的形式存储包含了订单完整信息

数据处理字典(F1~Fn):

编号名称来源处理逻辑概括输出数据流说明
F1订单检查订单+菜单目录判断订单的金额与价格与实体是否一致订单信息
F2数目统计 订单信息计算订单的数目订单数目
F2.1订单分类订单数目根据是否付款把的订单分类正常付款订单&未付款订单
F2.2准时处理正常订单判断金额把数据返回给客户准时处理
F2.3  即使处理待付款倒计时的订单如果订单超时删除该订单,返回交易关闭,如果在规定时间内付款,则发送订单给商家即使处理
F2.4发送订单待发送订单把的订单发送给客户发送订单

数据存储字典(D1~Dn):

编号名称插入数据流输出数据流内容说明
D2合格订单F1F2订单用于存储合格的订单
D3订单数目F2F2.1订单数量用于存储订单数量和价格
D4正常付款订单F2.1F2.2订单详情价格金额已付款金额用于存储正常付款的订单
D4未付款订单F2.1F2.3订单详情价格金额需要付款的时间,订单时间用于存储未付款或未正常付款的订单
D5转发订单F2.1+F2.3F2.4所有与订单的相关信息用于存储所有与订单相关的信息

数据项字典:

给出数据描述的部分内容,对数据流图中的各个存储文件中的记录字段予以逐个定义

编号名称类型长度说明备注
I1Order_Idint  
l2Order_Namevarchar50
l3Order_Amountfloat支付金额
l4Order_PayTimeDateTIme时间
l5Order_TimeDateTIme
l6Order_Merchant_IDint  
l7OrderDetail_Statusvarchar50支付状态是否支付,支付异常信息等

 E-R图

 

 将上述E-R图转换为关系模式模型

下划线为主码,删除线为外码,

订单(订单编号,订单名称,订单金额,付款时间,下单时间,商家编号)对应的实体订单,包含联系”属于“

商家(商家编号,商家名称,商家电话,商家地址,店主,注册日期)对应实体商家

菜单(菜单编号,菜名,类别,味道,重量,单价)

订单详情(订单编号菜单编号,订单状态)对应联系”组成“

菜品列表(菜单编号商家编号)对应联系"包含"

数据库说明

表说明
表名内容
Order订单
Merchant商家
Menu 菜单
OrderDetail订单详情
MenuList菜品列表

1.Order:

字段名数据类型长度字段中文名约束
Order_Idint        订单编号Primary Key
Order_Namevarchar(50)订单名称Not Null
Order_Amountfloat订单金额
Order_PayTimeDateTime付款时间
Order_TimeDateTime下单时间
Order_Merchant_IDint     商家编号Foreign Key

2.Merchant

字段名数据类型长度字段中文名约束
Merchant_Idint        商家编号Primary Key
Merchant_Namevarchar(50)商家名称Not Null
Merchant_Telvarchar(50)商家电话Not Null
Merchant_Localvarchar(50)商家地址
Merchant_Mastervarchar(50)店主
Merchant_LoginTimetime     注册日期Not Null

3.Menu

字段名数据类型长度字段中文名约束
Menu_Idint        菜单编号Primary Key
Menu_Namevarchar(50)菜名Not Null
Menu_Typevarchar(50)类别Not Null
Menu_Tastevarchar(50)味道
Menu_Weightvarchar(50)重量
Menu_Pricefloat    单价Foreign Key

4.OrderDetail

字段名数据类型长度字段中文名约束
OrderDetail_Orderint        订单编号FOREIGN KEYPrimary Key
 
OrderDetail_Menuint菜单编号FOREIGN KEY
OrderDetail_Statusvarchar(50)订单状态

5.MenuList

字段名数据类型长度字段中文名约束
MenuList_Menu_IDint        菜单编号FOREIGN KEYPrimary Key
MenuList_Merchant_IDint商家编号FOREIGN KEY

创建表sql语句

  1. DROP TABLE IF EXISTS `menu`;
  2. CREATE TABLE `menu` (
  3. `Menu_Id` int(11) NOT NULL COMMENT '菜单编号',
  4. `Menu_Name` varchar(50) NOT NULL COMMENT '菜名',
  5. `Menu_Type` varchar(50) DEFAULT NULL COMMENT '类别',
  6. `Menu_Taste` varchar(50) DEFAULT NULL COMMENT '味道',
  7. `Menu_Weight` varchar(50) DEFAULT NULL COMMENT '重量',
  8. `Menu_Price` float NOT NULL COMMENT '单价',
  9. PRIMARY KEY (`Menu_Id`),
  10. CONSTRAINT `menu_ibfk_1` FOREIGN KEY (`Menu_Id`) REFERENCES `menulist` (`MenuList_Menu_ID`)
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  12. /*Data for the table `menu` */
  13. /*Table structure for table `menulist` */
  14. DROP TABLE IF EXISTS `menulist`;
  15. CREATE TABLE `menulist` (
  16. `MenuList_Menu_ID` int(11) NOT NULL COMMENT '菜单编号',
  17. `MenuList_Merchant_ID` int(11) NOT NULL COMMENT '商家编号',
  18. PRIMARY KEY (`MenuList_Menu_ID`,`MenuList_Merchant_ID`),
  19. KEY `MenuList_Merchant_ID` (`MenuList_Merchant_ID`),
  20. CONSTRAINT `menulist_ibfk_1` FOREIGN KEY (`MenuList_Merchant_ID`) REFERENCES `merchant` (`Merchant_Id`)
  21. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  22. /*Data for the table `menulist` */
  23. /*Table structure for table `merchant` */
  24. DROP TABLE IF EXISTS `merchant`;
  25. CREATE TABLE `merchant` (
  26. `Merchant_Id` int(11) NOT NULL COMMENT '商家编号',
  27. `Merchant_Name` varchar(50) NOT NULL COMMENT '商家名称',
  28. `Merchant_Tel` varchar(50) NOT NULL COMMENT '商家电话',
  29. `Merchant_Local` varchar(50) NOT NULL COMMENT '商家地址',
  30. `Merchant_Master` varchar(50) DEFAULT NULL COMMENT '店主',
  31. `Merchant_LoginTime` time DEFAULT NULL COMMENT '注册日期',
  32. PRIMARY KEY (`Merchant_Id`)
  33. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  34. /*Data for the table `merchant` */
  35. /*Table structure for table `order` */
  36. DROP TABLE IF EXISTS `order`;
  37. CREATE TABLE `order` (
  38. `Order_Id` int(11) NOT NULL COMMENT '订单编号',
  39. `Order_Name` varchar(50) NOT NULL COMMENT '订单名称',
  40. `Order_Amount` float DEFAULT NULL COMMENT '订单金额',
  41. `Order_PayTime` datetime DEFAULT NULL COMMENT '付款时间',
  42. `Order_Time` datetime DEFAULT NULL COMMENT '下单时间',
  43. `Order_Merchant_ID` int(11) DEFAULT NULL COMMENT '商家编号',
  44. PRIMARY KEY (`Order_Id`),
  45. KEY `Order_Merchant_ID` (`Order_Merchant_ID`),
  46. CONSTRAINT `order_ibfk_1` FOREIGN KEY (`Order_Merchant_ID`) REFERENCES `merchant` (`Merchant_Id`)
  47. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  48. /*Data for the table `order` */
  49. /*Table structure for table `orderdetail` */
  50. DROP TABLE IF EXISTS `orderdetail`;
  51. CREATE TABLE `orderdetail` (
  52. `OrderDetail_Order` int(11) NOT NULL COMMENT '订单编号',
  53. `OrderDetail_Menu` int(11) NOT NULL COMMENT '菜单编号',
  54. `OrderDetail_Status` varchar(50) DEFAULT NULL COMMENT '订单状态',
  55. PRIMARY KEY (`OrderDetail_Order`,`OrderDetail_Menu`),
  56. KEY `OrderDetail_Menu` (`OrderDetail_Menu`),
  57. CONSTRAINT `orderdetail_ibfk_1` FOREIGN KEY (`OrderDetail_Order`) REFERENCES `order` (`Order_Id`),
  58. CONSTRAINT `orderdetail_ibfk_2` FOREIGN KEY (`OrderDetail_Menu`) REFERENCES `menu` (`Menu_Id`)
  59. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行