符合本系统的需求,所以本系统的数据库采用了MySQL。本设计一共使用了5个数据库表,每个表的详细设计结构:
管理员表(admins)
管理员表中包含这管理员的相关数据,其表结构详见表1:
表1 管理员表 序号 1 2 3 列名 id loginid passwords 数据类型 长度 标识 主键 允许空 int varchar varchar 11 255 255 是 是 否 是 是 说明 auto_increment 菜谱表(dishes) 菜谱表中存储着菜谱相关信息,其表结构详见表2:
表2 菜谱表
序号 1 2 3 4 5 6 7 8 9 10
列名 id title shopid typename intro img_url price amount burdennames burdens 数据类型 长度 标识 主键 允许空 int text int text text varchar double double varchar varchar 11 11 255 11 11 是 是 否 是 是 是 是 是 是 是 说明 auto_increment 标题 类型ID 类型名称 详细介绍 图片 价格 数量 原材料 原材料ID
订单表(orders) 订单表中存储着订单的所有数据,其表结构详见表3:
表3 订单表 序号 1 2 3 5 6 7 8 9 列名 id userid username status dishesid price amount createtime 数据类型 int int text int int double double varchar 标识 是 主键 是 允许空 否 是 是 是 是 是 是 是 说明 auto_increment 下单人 下单时间
食物分类表(shops) 食物分类表中存储着食物分类的相关信息,其表结构如表4所示:
表4 食物分类表
序号 1 2 列名 id name 数据类型 int text 长度 11 标识 是 主键 是 允许空 否 是 说明 auto_increment 类型名称
第 9 页 共 35 页
用户表(users)
用户表中存储着用户的相关数据,其表结构详见表5:
表5 用户表 序号 1 2 3 4 列名 id loginid name passwords 数据类型 长度 标识 主键 允许空 int varchar text varchar 11 255 255 是 是 否 是 是 是 说明 auto_increment 登录账号 姓名 密码 4.2 数据库ER图
E-R图是DOA(Data Orienteer Approach)的一种主要的设计方法,它的作用是处理对象的业务领域和系统的理想化样式,从概念数据模型到E-R Approach,根据实际的报表做出E-R图。E-R图有实体及其间的对应关系组成。
E-R图亦称为实体-联系图(Entity Relationship Diagram),提供了表示实体型、属性和联系的方法,能够表示现实世界的概念模型。 安卓点餐系统的E-R图详见7:
图7 系统E-R图
安卓点餐系统的物理数据详见图8:
第 10 页 共 35 页
图8 物理数据模型图
5系统详细设计与实现
5.1登录模块的实现
本系统使用前用户需要登录验证,在登录界面中,通过继承一个Activity来实现,界面上的控件用到了EditText、Button和CheckBox等等组件, EditText主要用来实现用户帐号和密码的输入。
登录过程中用户需要输入账号与密码,并且经由登录按钮来表达登录意图,意图表达完成,系统会经由HTTP的过程将帐号与密码发送到服务器端验证,并返回服务端的验证结果,如果验证正确那么提示使用者登录完成,然后自行转入主界面;如果错误,那么提示使用者登录失败。
该界面具有保存密码成功,假如使用者在登录时勾选了“保存密码”复选框,则下次再进入到本界面用户将不需要再次输入密码,而只需要点击登录按钮即可实现登录操作,记住密码的过程是通过Android平台提供的SharedPreferences来实现的。
当然如果用户还没有登录账号,则能够通过“注册”选项链接到用户注册界面,从而注册一个新号码;
使用者登录过程图详见图9,展示了使用者登录功能的操作过程和系统处理
第 11 页 共 35 页
过程。
图9登录界面流程图
具体的实现效果如图9所示:
图9 登录界面
第 12 页 共 35 页