餐厅点餐平台导航
【餐厅点餐平台|一】项目描述+需求分析 https://blog.csdn.net/weixin_46291251/article/details/126414430
【餐厅点餐平台|二】总体设计 https://blog.csdn.net/weixin_46291251/article/details/126422811
【餐厅点餐平台|三】模块设计 https://blog.csdn.net/weixin_46291251/article/details/126422826
【餐厅点餐平台|四】UI设计+效果展示 https://blog.csdn.net/weixin_46291251/article/details/126422844
【源码下载】 https://download.csdn.net/download/weixin_46291251/86404328
文章目录
- 三:总体设计
- 3.1系统架构设计
- MVC架构
- 各模块关系
- 3.2数据库设计
- 关系模型
- 物理模型
- Bill
- **collect_rent**
- **discount**
- **discountDetail**
- **joinAproval**
- **organizationInfo**
- **picture**
- **saleUnit**
- **setFoodType**
- **User**
- **windowApproval**
- **WindowInfo**
三:总体设计
3.1系统架构设计
在当下的大部分系统中,流行的是MVC架构,MVC架构各个模块分工明确,在开发时各模块可以分离开发,相互协作,最终完成系统的搭建。
MVC架构
mvc是一种架构模型,本身并没有新功能,只是对项目的一种规范,方便后期进行维护;mvc架构将模型(M),视图(V)和控制(C)割离开,这么做可以提高代码书写的效率和后期维护。
View(视图):简单来说,就是负责数据的可视化。
Controller(控制器):通常控制器用来从视图读取数据,并发送给对应的模型处理,再将结果反馈给视图显示。充当视图与模型之间数据交互的桥梁。
Model(模型): 模型代表一个存取数据的对象它也可以带有逻辑,在数据变化时更新控制器。
借用MVC架构的思想,我们结合系统需求,将数据库的操作与其他模块分离,同样使用Controller进行UI的响应,做出相应的操作,作用到数据库与界面之间。最终构建了DAO-Model-Controller-View的架构,其中DAO对数据进行操作,Model存储对象,Controller实现各逻辑控制界面现实,View就是UI与用户进行交互。
各模块关系
在总体上,DAO层与数据库进行打交道,实现各个表的增删改查,让其他层与数据库隔离,其他层只需要知道数据库中有那些表,数据的操作通过DAO层来进行交互,在Controller层中,实现系统的各主要功能,集成DAO中的数据操作进行封装打包,控制UI界面的展示,Controller层连接前端界面和数据访问层,在各层时间数据的传输通过模型来进行传递,根据系统设计需求建立各个实体类模型。各模块关系如图所示。
-
DAO层:连接数据库,对数据库中的各个表进行增删改查,与数据库中的表进行交互,每个表有对应的DAO,根据Controller的不同需求,完成从数据库中的查询操作,删除操作,修改操作。
-
Controller层:控制器,控制系统的整个功能的实现,功能集成与这一层装,调用DAO层中的各个数据表访问,完成前端页面展示需求数据的获取,将数据从数据中通过DAO层提取出返回到前端页面显示,而前端的操作,如数据的修改插入,也通过Controller层传递到DAO最终作用到数据库,完成数据的更新,在前端UI传回的数据,进行逻辑判断与处理,返回给前端并根据结果决定对数据库的操作。
-
View层:View层的职责非常简单,就是显示界面,对数据的操作向Controller获取相应的行为,对用户进行一个回显,与用户打交道。
-
Model层:在DAO、Controller和View层的交流中,需要对数据进行传输,而在系统中不同的对象数据不同,所以在Model层中就是建立实体类,对现实生活中的实体进行抽象到程序中进行表达,定义实体的相应应有的行为并实现。从数据流上就是,前端用户输入产生模型,通过Controller传输到DAO层,最终写入数据库,也可以是逆操作。
3.2数据库设计
关系模型
Bill : [‘order_id’, ‘username’, ‘window_id’, ‘price’, ‘tradingTime’, ‘status’, ‘description’]
User : [‘type’, ‘name’, ‘phone’, ‘password’, ‘creditCard’, ‘sex’, ‘identityCard’]
WindowInfo : [‘id’, ‘name’, ‘address’, ‘organization_id’, ‘status’]
collect_rent : [‘id’, ‘org_id’, ‘win_id’, ‘turnover’, ‘salary’, ‘time’, ‘description’]
discount : [‘id’, ‘value’, ‘window_id’, ‘description’, ‘type’]
discountDetail : [‘discount_id’, ‘food_id’, ‘discription’]
foodType : [‘type_id’, ‘food_id’, ‘name’, ‘description’]
joinApproval : [‘id’, ‘organization_id’, ‘user_id’, ‘status’]
organizationInfo : [‘id’, ‘name’, ‘address’, ‘creditCard’]
picture : [‘id’, ‘size’, ‘content’]
saleUnit : [‘id’, ‘window_id’, ‘name’, ‘price’, ‘status’, ‘diningType’, ‘unit’, ‘image_id’, ‘description’, ‘type’]
setFoodType : [‘set_id’, ‘type_id’, ‘num’, ‘description’]
windowApproval : [‘window_id’, ‘user_id’, ‘id’, ‘status’]