2.2数据库设计
2.2.1实体E-R图
这一设计阶段是在需求分析的基础上,设计出能满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。
将现实世界的实体,属性和联系转化为抽象的概括的概念模型。
构成E-R图的基本要素是实体型、属性和联系。
超市基本信息的实体-属性图,如图2所示。
图2超市基本信息实体-属性图
图1 功能模块图
总实体图,如图3所示。
图3 总实体图
2.2.2数据库逻辑设计
将关系模型转换成具体DBMS支持的实际关系数据模型,如下面的几个表格所示。
(每个表格表示在数据库中的一个表)
商品分类表包括编号、名称、备注字段,如表1所示。
表1 商品分类表
列名数据类型是否为空字段宽度默认值说明
编号int 否10 主键
名称Varchar(50) 否50
备注char 10
管理员基本信息表包括姓名、权限、身份证号、密码等字段,如表2所示。
表2 管理员基本信息表
条形码int 否20 主键
进货价货币型否10 0.00
零售价货币型否10 0.00
会员价货币型否10 0.00
业务提成货币型否10 0.00 说明原因库存int 10
在上面的实体以及实体之间的关系的基础上,形成数据库中的表格和各个表格之间的关系,即关系模型。
设计关系模型并对其进行优化:
确定数据依赖,给出关系模式中的主码,明确其依赖关系。
对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
对照数据依赖的理论对各个关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖,确定各个关系模式分别所属的范式类型。
按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,对某些模式检查是否有合并或分解的需要。
对关系模式进行必要的分解,提高数据操作效率和存储空间的利用率。
2.2.3数据库物理设计
(1)数据库设计视图
设计相应的数据库,并录入相关的数据,如图4所示。
图4数据库设计图
(2)数据库表之间关联图
为各个表之间建立相应的关联,如图5所示。
图5 数据库表之间关联图
2.2.4连接数据库
#define Provider "Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;
Persist Security Info=False;Initial Catalog=Catering"
void ADOConn::OnInitADOConn()
{
HRESULT hr;
::CoInitialize(NULL);
try
{
hr = m_pCon.CreateInstance("ADODB.Connection");
if (SUCCEEDED(hr))
{
m_pCon->ConnectionTimeout = 3;
// m_pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Catering.mdb","","",adMo deUnknown);
图6超市基本信息界面设计
②日常操作模块
进货开单界面设计
创建窗口对象,命名ID为IDD_KANDAN_C_DIALOG,在合适的位置添加五个文本框,五个编辑框,,按照自己所需相应的依次为每一个控件修改ID和caption属性,其设计如图7所示。
图7进货开单界面设计
③信息查询模块
出库开单界面设计
创建窗口对象,命名ID为IDD_CHUKU_E_DIALOG,在合适的位置添加五个文本框,五个编辑框,,按照自己所需相应的依次为每一个控件修改ID和caption属性,其
设计如图8所示。
图8出库开单界面设计
④系统管理模块
密码修改界面设计
创建窗口对象,命名ID为IDD_PWD_A_DIALOG,在合适的位置添加三个文本框,三个编辑框,两个命令按钮,按照自己所需相应的依次为每一个控件修改ID和caption 属性,其设计如图9所示。
图9出库开单界面设计
(2)菜单设计
添加菜单,并添加菜单项系统设置、基本资料、进货管理、销售管理、库存管理等子菜单项,如图10所示。