库存管理系统的设计与实现(代码)

本文探讨了如何设计和实现一个库存管理系统,重点介绍了使用MySQL作为数据库进行数据存储的细节,包括创建名为'stock'的数据库。
摘要由CSDN通过智能技术生成

MySQL模块

新建数据库'stock'

#仓库信息表
CREATE TABLE houses(
Hid VARCHAR(20) NOT NULL,
Hname VARCHAR(20) NOT NULL,
Sname VARCHAR(20) NOT NULL,
Phone VARCHAR(20) NOT NULL,
Hadd VARCHAR(20) NOT NULL
);

 INSERT
 INTO houses
 VALUES('H01','仓库1','王雷','1234567','江苏南京');
 INSERT
 INTO houses
 VALUES('H02','仓库2','李进','2345678','江苏常州');
 INSERT
 INTO houses
 VALUES('H03','仓库3','张小虎','3456789','江苏盐城');


#管理人员信息表
CREATE TABLE staff(
Sid VARCHAR(20)NOT NULL,
Sname VARCHAR(20) NOT NULL,
Phone VARCHAR(20) NOT NULL
);

 INSERT
 INTO staff
 VALUES('S01','王雷','1234567');
 INSERT
 INTO staff
 VALUES('S02','李进','2345678');
  INSERT
 INTO staff
 VALUES('S03','张小虎','3456789');
 
 INSERT
 INTO staff
 VALUES('S03','张小虎','8888888');


#物资信息表
CREATE TABLE goods(
Gid VARCHAR(20) PRIMARY KEY,
Gname VARCHAR(20) NOT NULL,
Gnorm VARCHAR(20) NOT NULL,
Gtype VARCHAR(20) NOT NULL,
Gunit VARCHAR(20) NOT NULL
);
DELETE FROM goods
 INSERT
 INTO goods
 VALUES('G01','医用消毒凝露','450ml','医护用品','瓶');
 INSERT
 INTO goods
 VALUES('G02','康师傅方便面','500g','零食','袋');
 INSERT
 INTO goods
 VALUES('G03','农夫山泉矿泉水','550ml','饮料','瓶');
 INSERT
 INTO goods
 VALUES('G04','医用口罩','大号','医护用品','袋');
 INSERT
 INTO goods
 VALUES('G05','压缩饼干','300g','零食','袋');
 
 
#入库信息表
CREATE TABLE imgoods(
Gid VARCHAR(20) PRIMARY KEY,
Gname VARCHAR(20) NOT NULL,
Gnorm VARCHAR(20) NOT NULL,
Gtype VARCHAR(20) NOT NULL,
Gunit VARCHAR(20) NOT NULL,
IMnum INT NOT NULL,
Gprice DOUBLE NOT NULL,
IMsum DOUBLE NOT NULL,
IMtime DATE NOT NULL,
IMman VARCHAR(20) NOT NULL,
Operator VARCHAR(20) NOT NULL,
Hname VARCHAR(20) NOT NULL,
IMelse VARCHAR(20) NOT NULL
);

#出库信息表
CREATE TABLE exgoods(
Gid VARCHAR(20) PRIMARY KEY,
Gname VARCHAR(20) NOT NULL,
Gnorm VARCHAR(20) NOT NULL,
Gtype VARCHAR(20) NOT NULL,
Gunit VARCHAR(20) NOT NULL,
EXnum INT NOT NULL,
Gprice DOUBLE NOT NULL,
EXsum DOUBLE NOT NULL,
EXtime DATE NOT NULL,
EXman VARCHAR(20) NOT NULL,
Operator VARCHAR(20) NOT NULL,
Hname VARCHAR(20) NOT NULL,
EXelse VARCHAR(20)NOT NULL
);
# @Time : 2021/12/19 21:12
# @Author : 金佩娴
# @File : 库存管理系统.py
# @Software: PyCharm
import pymysql
from tkinter import *
from tkinter.ttk import Treeview

def createdatabase():
    conn = pymysql.connect(user="root", passwd="123456")
    cursor=conn.cursor()
    sql='''
        create database if not exists stock;
    '''
    cursor.execute(sql)
    cursor.close()
    conn.commit()
    conn.close()
# createdatabase()

def createtable():
    conn = pymysql.connect(user="root", passwd="123456", db='stock')
    cursor = conn.cursor()
    sqlworker = '''
            CREATE TABLE if not exists worker(
            empid VARCHAR(20) PRIMARY KEY NOT NULL,
            deptid VARCHAR(20) NOT NULL,
            name VARCHAR(20) NOT NULL,
            sex VARCHAR(20) NOT NULL,
            duty VARCHAR(20) NOT NULL,
            password VARCHAR(20) NOT NULL,
            authority VARCHAR(20) NOT NULL,
            id VARCHAR(20) NOT NULL UNIQUE
            );
        '''
def createtable():
    conn = pymysql.connect(user="root", passwd="123456", db='stock')
    cursor = conn.cursor()
    sqlhouses = '''
            CREATE TABLE if not exists houses(
            Hid VARCHAR(20) PRIMARY KEY,
            Hname VARCHAR(20) NOT NULL,
            Sname VARCHAR(20) NOT NULL,
            Phone VARCHAR(20) NOT NULL,
            Hadd VARCHAR(20) NOT NULL
            );
        '''
    cursor.execute(sqlhouses)#仓库信息表
    sqlstaff='''
        CREATE TABLE if not exists staff(
            Sid VARCHAR(20) PRIMARY KEY,
            Sname VARCHAR(20) NOT NULL,
            Phone VARCHAR(20) NOT NULL
            );
    '''
    cursor.execute(sqlstaff)#管理人员表
    sqlgoods='''
        CREATE TABLE if not exists goods(
            Gid VARCHAR(20) PRIMARY KEY,
            Gname VARCHAR(20) NOT NULL,
            Gnorm VARCHAR(20) NOT NULL,
            Gtype VARCHAR(20) NOT NULL,
            Gunit VARCHAR(20) NOT NULL
        );
    '''
    cursor.execute(sqlgoods)#物资信息表
    sqlimgoods='''
        CREATE TABLE if not exists imgoods(
            Gid VARCHAR(20) PRIMARY KEY,
            Gname VARCHAR(20) NOT NULL,
            Gnorm VARCHAR(20) NOT NULL,
            Gtype VARCHAR(20) NOT NULL,
            Gunit VARCHAR(20) NOT NULL,
            IMnum INT NOT NULL,
            Gprice DOUBLE NOT NULL,
            IMsum DOUBLE NOT NULL,
            IMtime DATE NOT NULL,
            IMman VARCHAR(20) NOT NULL,
        
  • 2
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
库 存 管 理 系 统 ----系统设计 一 功能设计 总原则: 首先要保证系统总目标的实现,其次注意模块的独立性要强。各模块的接口应简单明了 。 系统结构图:功能模块的划分,数据录入、库存分析、查询系统 各功能模块的描述:输入,输出,功能。 二 数据库设计 1. 数据模型抽象层次 2. E-R方法的基本思想 在设计过程中引入一个中间步骤,即先设计一个企业模式(该模式纯粹是现实世界的 反映,与存储结构、存取方式无关),再将企业模式转换为某个DBMS上可以实现的数据 模型。多数是关系数据模型。 3. 库存管理系统采用这种方法,先设计出概念数据模型,即E-R模型。 3.1库存管理系统局部E-R视图 (1) 物料与入库单之间 (2) 物料与领料单之间 (3) 物料与退料单之间 (4) 物料与仓库之间 3.2库存管理系统集成E-R视图 4. ER模型到关系模式的转换 功能要求: 入库单登录 领料单登录 退料单登录 物资短缺/超储分析 物资积压分析 相关数据库表 入库台帐 领料台帐 退料台帐 库存总帐 4.1 实体集的转换 一个实体型转换为一个关系,实体的属性就是关系的属性,实体的关键字就是关系 的关键字。 4.2 联系的转换 (1)M:N联系 一个联系转换为一个关系,相关实体的关键字与联系的属性组合成关系的属性,相 关实体的关键字组合成关系的关键字。 (2)1:N联系 N端实体的关键字构成关系的关键字,可以与N端合并。 (3)1:1联系 任一端实体的关键字构成关系的关键字,可以与任一端合并 5.参考数据库结构 (1)入库台帐(入库单编号,仓库号,进货日期,供货单位,入库数量,材料编号, 进货单价,检验员,记账员,备注) input "列名 "数据类型 "长度 "可否为空 "注释 " "rk_id "varchar "10 "否 "入库单编号 " "ck_id "varchar "10 "否 "仓库号 " "in_date "date " "否 "进库日期 " "cl_from "varchar "10 "否 "供货单位 " "rk_num "smallint "10 "否 "入库数量 " "cl_id "varchar " "否 "材料编号 " "price "double " "否 "进货单价 " "jyy "varchar "10 "否 "检验员 " "jzy "varchar "10 "否 "记帐员 " "bz "varchar "30 "是 "备注 " (2)领料台帐(领料单编号,仓库号,领料日期,领料部门,领料用途,材料编号, 实发数量,领料员,发料员,备注) 入库台帐和领料台帐中只有材料编号,其它信息存放在材料编码库中,避免了数据冗 余。 "列名 "数据类型 "长度 "可否为空 "注释 " "ll_id "varchar " "否 "领料单编号 " "ck_id "varchar " "否 "仓库号 " "ll_date "date " "否 "领料日期 " "ll_bm "varchar " "否 "领料部门 " "yt "varchar "100 "否 "领料用途 " "cl_id "varchar " "否 "材料编号 " "num "smallint " "否 "实发数量 " "lly "varchar "10 "否 "领料员 " "fly "varchar "10 "否 "发料员 " "bz "varchar "50 "是 "备注 " (3)库存总帐(材料编号,仓库号,库存数量) total "列名 "数据类型 "长度 "可否为空 "注释 " "total_id "varchar "10 "否 "材料编号 " "ck_id "varchar "10 "否 "仓库号 " "total_num "smallint " "否 "库存数量 " (4)退料台帐(退料单编号,仓库号,退料日期,材料编号,退料数量,退料人,经 手人,退料原因) back "列名 "数据类型 "长度 "可否为空 "注释 " "b_id "varchar "10 "否 "退料单编号 " "ckid "varchar "10 "否 "仓库号 " "tl_date "date " "否 "退料日期 " "cl_id "varchar "10 "否 "材料编号 " "num "smallint " "否 "退料数量 " "tlr "varchar "10 "否 "退料人 " "jsr "varchar "10 "否 "经手人 " "reason "varchar "30 "否 "退料原因 " (5)材料库(材料编号,材料名称,单价,最低库存量,最高库存量) material "列名 "数据类型 "长度 "可否为空 "注释 " "cl_id "varcha
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值