数据库表结构设计参考
MySQL设计工厂管理数据库(Ⅰ)—表结构设计
MySQL设计⼯⼚管理数据库(Ⅰ)—表结构设计MySQL设计⼯⼚管理数据库(Ⅰ)—表结构设计引⾔学习MyQL第5天,主要在学习其的基础的操作知识,想通过实例练习巩固所学,遂成此⽂。
设计思路⼯⼚管理E-R图由图易知:该数据库主要包括五个主体:1、项⽬(project)2、供应商(supplier)3、仓库(storehouse)4、零件(components)5、职⼯(staff)设计⼯⼚管理逻辑图根据E-R图要求,笔者尝试设计的逻辑图如下图所⽰:实现过程实现⼯具为MySQL,编辑⼯具为Navicat for MySQL项⽬(project)表实现CREATE TABLE `project` (`Supplier_supply` int(10)NOT NULL COMMENT'供应量',`project_ID` varchar(10)CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT'项⽬号',`budget` int(10)NOT NULL COMMENT'预算',`start_date` datetime(0)NOT NULL COMMENT'开⼯⽇期',PRIMARY KEY(`project_ID`)USING BTREE,INDEX `supply`(`Supplier_supply`)USING BTREE,CONSTRAINT `Supplier_supply` FOREIGN KEY(`Supplier_supply`)REFERENCES `supplier` (`supply`)ON DELETE RESTRICT ON UPDATE RESTRIC T)ENGINE= InnoDB CHARACTER SET= utf8 COLLATE= utf8_general_ci ROW_FORMAT= Dynamic;职⼯(staff)表设计CREATE TABLE `staff` (`staff_ID` char(11)CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT'职⼯号',`staff_name` varchar(15)CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT'职⼯姓名',`age` int(3)NOT NULL COMMENT'年龄',`job_title` varchar(10)CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT'职称',`Whether_to_lead` enum('yes','no')CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT'是否领导',`storehouse_ID` char(11)CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT'所在仓库',PRIMARY KEY(`staff_ID`)USING BTREE,INDEX `storehouse_ID`(`storehouse_ID`)USING BTREE,CONSTRAINT `storehouse_ID` FOREIGN KEY(`storehouse_ID`)REFERENCES `storehouse` (`storehouse_ID`)ON DELETE RESTRICT ON UPDATE R ESTRICT)ENGINE= InnoDB CHARACTER SET= utf8 COLLATE= utf8_general_ci ROW_FORMAT= Dynamic;零件(components)表设计CREATE TABLE `components` (`component_ID` varchar(10)CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT'零件号',`comonent_name` varchar(10)CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT'零件名称',`specification` varchar(10)CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT'规格',`unit_price` decimal(10,2)NOT NULL COMMENT'单价',`inventory` int(25)NOT NULL COMMENT'库存量',`description` varchar(15)CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT'描述',PRIMARY KEY(`component_ID`, `inventory`)USING BTREE,INDEX `inventory`(`inventory`)USING BTREE)ENGINE= InnoDB CHARACTER SET= utf8 COLLATE= utf8_general_ci ROW_FORMAT= Dynamic;供应商(supplier)表设计CREATE TABLE `supplier` (`supplier_ID` varchar(20)CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT'供应商号',`name` varchar(15)CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT'姓名',`address` varchar(25)CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT'地址',`telephone_number` char(11)CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT'电话号码',`account_number` char(22)CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT'账号',`supply` int(10)NOT NULL COMMENT'供应量',PRIMARY KEY(`supplier_ID`, `supply`)USING BTREE,INDEX `supply`(`supply`)USING BTREE)ENGINE= InnoDB CHARACTER SET= utf8 COLLATE= utf8_general_ci ROW_FORMAT= Dynamic;仓库(storehouse)表设计CREATE TABLE `storehouse` (`storehouse_ID` char(11)CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT'仓库号',`area` varchar(10)CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT'⾯积',`s_telephone_number` varchar(11)CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT'电话号码',`component_stock` int(10)NOT NULL COMMENT'零件库存',PRIMARY KEY(`storehouse_ID`)USING BTREE,INDEX `component_stock`(`component_stock`)USING BTREE,CONSTRAINT `component_stock` FOREIGN KEY(`component_stock`)REFERENCES `components` (`inventory`)ON DELETE RESTRICT ON UPDATE RESTRICT)ENGINE= InnoDB CHARACTER SET= utf8 COLLATE= utf8_general_ci ROW_FORMAT= Dynamic;实现效果⼩结笔者在逻辑结构设计上仍有⽋缺,望读者不吝赐教,给笔者⼀些改进建议。
数据库表结构设计参考
数据库表结构设计参考数据库表结构设计参考表名外部单位表(DeptOut)列名数据类型(精度范围)空/非空约束条件外部单位ID 变长字符串(50) N 主键类型变长字符串(50) N单位名称变长字符串(255) N单位简称变长字符串(50)单位全称变长字符串(255)交换类型变长字符串(50) N 交换、市机、直送、邮局单位邮编变长字符串(6)单位标识(英文) 变长字符串(50)排序号整型(4)交换号变长字符串(50)单位领导变长字符串(50)单位电话变长字符串(50)所属城市变长字符串(50)单位地址变长字符串(255)备注变长字符串(255)补充说明该表记录数约3000条左右,一般不做修改。
初始化记录。
表名外部单位子表(DeptOutSub)列名数据类型(精度范围)空/非空约束条件外部子单位ID 变长字符串(50) N父ID 变长字符串(50) N 外键单位名称变长字符串(255) N单位编码变长字符串(50)补充说明该表记录数一般很少表名内部单位表(DeptIn)列名数据类型(精度范围)空/非空约束条件内部单位ID 变长字符串(50) N 主键类型变长字符串(50) N单位名称变长字符串(255) N单位简称变长字符串(50)单位全称变长字符串(255)工作职责排序号整型(4)单位领导变长字符串(50)单位电话(分机)变长字符串(50)备注变长字符串(255)补充说明该表记录数较小(100条以内),一般不做修改。
维护一次后很少修改表名内部单位子表(DeptInSub)列名数据类型(精度范围)空/非空约束条件内部子单位ID 变长字符串(50) N父ID 变长字符串(50) N 外键单位名称变长字符串(255) N单位编码变长字符串(50)单位类型变长字符串(50) 领导、部门排序号Int补充说明该表记录数一般很少表名省、直辖市表(Province)列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 名称变长字符串(50) N 外键投递号变长字符串(255) N补充说明该表记录数固定表名急件电话语音记录表(TelCall)列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 发送部门变长字符串(50) N接收部门变长字符串(50) N拨打电话号码变长字符串(50)拨打内容变长字符串(50)呼叫次数Int呼叫时间Datetime补充说明该表对应功能不完善,最后考虑此表表名摄像头图像记录表(ScreenShot)列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 拍照时间Datetime N取件人所属部门变长字符串(50) N取件人用户名变长字符串(50)取件人卡号变长字符串(50)图片文件BLOB/Image补充说明该表记录数可能较多,并且有大对象表名箱体设置表(BoxSet)列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N主控箱体号Int N分控箱体号Int N箱体名称变长字符串(50)所属部门名称变长字符串(50)控制用户ID 变长字符串(50) 外键补充说明该表记录数比实际分控箱体数略多,小表表名信件表(Letters)列名数据类型(精度范围)空/非空约束条件信件ID 变长字符串(50) N发信/收信变长字符串(50) N信件类型变长字符串(50) N 信/交换/汇款单/挂号信信件年份变长字符串(50)信件条码变长字符串(50) 一维条码信件号变长字符串(50) 信件条码的单元码接收单位变长字符串(255)接收二级单位变长字符串(255)接收人名称变长字符串(50) 外键箱体名变长字符串(50)箱体单位变长字符串(50)发送单位变长字符串(255)密级变长字符串(50)紧急程度变长字符串(50)限制时间Datetime大宗号变长字符串(50)备注变长字符串(255)状态变长字符串(50) 登记/箱中创建部门变长字符串(50) 外键创建人变长字符串(50) 外键创建时间Datetime修改部门变长字符串(50) 外键修改人变长字符串(50) 外键修改时间Datetime信件内容?是否直送?直送列表码?序列号?补充说明该表记录数大,此信件表删除时的Trigger转移到信件历史记录表表名信件历史记录表(LetterHistory)列名数据类型(精度范围)空/非空约束条件信件ID 变长字符串(50) N发信/收信变长字符串(50) N信件类型变长字符串(50) N 信/交换/汇款单/挂号信信件年份变长字符串(50)信件条码变长字符串(50) 一维条码信件号变长字符串(50) 信件条码的单元码接收单位变长字符串(255)接收二级单位变长字符串(255)接收人名称变长字符串(50) 外键箱体名变长字符串(50)箱体单位变长字符串(50)发送单位变长字符串(255)密级变长字符串(50)紧急程度变长字符串(50)限制时间Datetime大宗号变长字符串(50)备注变长字符串(255)状态变长字符串(50) 登记/箱中创建部门变长字符串(50) 外键创建人变长字符串(50) 外键创建时间Datetime修改部门变长字符串(50) 外键修改人变长字符串(50) 外键修改时间Datetime补充说明该表记录数大,由原来的信件表删除时的Trigger转移到此表表名信函流程跟踪表(LetterTrace)列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N信函ID 变长字符串(50) N 外键连接信函表条码变长字符串(100)流程类型变长字符串(50) 登记/创建部门变长字符串(50) 外键创建人变长字符串(50) 外键创建时间Datetime补充说明该表记录数较小,因为模板一般用户自定义的个数不会太多表名大宗发信模板表(LetterBulkTpl)列名数据类型(精度范围)空/非空约束条件模板ID 变长字符串(50) N模板名称变长字符串(50) N选择单位类型变长字符串(50) N 外键单位名称变长字符串(255) N 外键二级单位名称变长字符串(50)单位用户名变长字符串(50)顺序号Int补充说明该表记录数较小,因为模板一般用户自定义的个数不会太多表名发信排序表(LetterOrder)列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 发送方式变长字符串(50) N单位名称变长字符串(50) N 外键信件ID 变长字符串(50) N 外键清单号变长字符串(50)排序单位变长字符串(50)排序用户名变长字符串(50)排序时间Datetime补充说明该表记录数普通,使用扫描枪录入。
数据库表结构设计例子
数据库表结构设计例子数据库表结构设计是数据库开发中的重要环节,它决定了数据的存储方式和数据之间的关系。
下面列举了10个不同领域的数据库表结构设计例子。
1. 学生信息表学生信息表包含学生的姓名、性别、出生日期、班级等字段,用于存储学生的基本信息。
此表的主键可以是学生的学号,用于唯一标识每个学生。
2. 课程信息表课程信息表用于存储课程的信息,包括课程名称、学分、教师等字段。
此表的主键可以是课程号,用于唯一标识每门课程。
3. 图书馆借阅记录表图书馆借阅记录表用于记录读者的借阅情况,包括书籍名称、借阅日期、归还日期等字段。
此表的主键可以是借阅记录的编号,用于唯一标识每条借阅记录。
4. 订单信息表订单信息表用于存储用户的订单信息,包括订单号、商品名称、购买数量、订单日期等字段。
此表的主键可以是订单号,用于唯一标识每个订单。
5. 电影评分表电影评分表用于存储用户对电影的评分信息,包括用户ID、电影ID、评分等字段。
此表的主键可以是用户ID和电影ID的组合,用于唯一标识每条评分记录。
6. 医院病人信息表医院病人信息表用于存储病人的基本信息,包括病人姓名、年龄、性别、病历号等字段。
此表的主键可以是病历号,用于唯一标识每个病人。
7. 酒店预订表酒店预订表用于记录用户的酒店预订信息,包括预订人姓名、入住日期、离店日期、房间类型等字段。
此表的主键可以是预订记录的编号,用于唯一标识每条预订记录。
8. 购物车表购物车表用于存储用户的购物车信息,包括商品名称、商品数量、商品价格等字段。
此表的主键可以是购物车项的编号,用于唯一标识每个购物车项。
9. 员工信息表员工信息表用于存储公司员工的信息,包括员工姓名、职位、入职日期等字段。
此表的主键可以是员工的工号,用于唯一标识每个员工。
10. 聊天记录表聊天记录表用于存储用户之间的聊天记录,包括发送者ID、接收者ID、发送时间、消息内容等字段。
此表的主键可以是聊天记录的编号,用于唯一标识每条聊天记录。
系统的权限管理体系数据库表结构设计
系统的权限管理体系数据库表结构设计(控
制到菜单)
1.思路:
不同的人员, 对系统的操作权限是不同的。
对于一个系统, 权限可能会有很多种, 如果逐一给每一个人员分配权限, 是一件很麻烦的事情。
所以可以使用对“角色”进行操作的概念, 将权限一致的人员赋予同一个角色, 然后对该角色进行权限分配。
这三张表分别人员信息, 角色信息和权限信息。
他们的关系是多对多的, 一个权限可能同时属于多个角色, 一个角色可能拥有多个权限, 同样的道理, 一个人员可能同时拥有多个角色, 而一个角色也可能拥有多个人员。
企业工商数据库表结构
企业工商数据库表结构全文共四篇示例,供读者参考第一篇示例:企业工商数据库表结构是指在企业数据库中用于存储工商相关信息的表结构,它包括了企业的基本信息、股东信息、经营范围、注册资本等重要数据。
在企业的管理和运营过程中,这些信息对于实现业务目标和监管合规都至关重要。
下面我们来详细介绍一下企业工商数据库表结构的设计。
一、企业基本信息表结构设计1. 公司基本信息表:包括企业名称、法定代表人、注册资本、注册时间、所属行业等字段;2. 联系信息表:包括联系电话、邮箱、地址等字段;3. 营业执照信息表:包括营业执照号、发证日期、有效期等字段;4. 经营范围表:包括主营业务、经营范围、经营地区等字段;5. 企业状态表:包括企业状态、变更记录、注销原因等字段。
1. 股东基本信息表:包括股东名称、持股比例、股东类型等字段;2. 股东投资信息表:包括投资金额、投资时间、投资项目等字段;3. 股东变动记录表:包括股权转让记录、增减资记录、股东关系维护记录等字段。
1. 经营记录表:包括经营活动记录、经营收入、盈利情况等字段;2. 经营报表数据表:包括资产负债表、利润表、现金流量表等字段;3. 经营风险预警表:包括财务风险、市场风险、政策风险等字段。
1. 法律诉讼记录表:包括法律诉讼案件记录、调解记录、裁决记录等字段;2. 税务记录表:包括税务缴纳记录、税务申报记录、税务优惠情况等字段;3. 审计报告表:包括内部审计报告、外部审计报告、财务审计报告等字段。
以上是企业工商数据库表结构的设计,通过这些表结构的建立和管理,企业可以更好地管理自身的工商信息,及时监测经营情况,减少法律风险,提高经营效率,实现可持续发展。
这些数据也为政府监管部门提供了便利,更好地行使监管职责,确保市场秩序良好。
希望企业各部门在日常工作中能够充分利用企业工商数据库表结构,共同促进企业发展和国家经济繁荣。
第二篇示例:企业工商数据库是一个存储企业相关信息的数据库,其中包含了企业的基本信息、财务信息、人员信息等。
数据库表结构设计例子
数据库表结构设计例子数据库表结构设计是构建数据库的基础工作之一,它决定了数据库中数据的组织方式和存储结构。
一个好的数据库表结构设计可以提高数据库的性能、可扩展性和数据的完整性。
下面以一个电商平台的数据库为例,列举10个数据库表结构设计的例子。
1. 用户表(User)- 字段:用户ID、用户名、密码、手机号、邮箱、注册时间等。
- 主键:用户ID。
- 约束:用户名、手机号、邮箱的唯一性约束。
2. 商品表(Product)- 字段:商品ID、商品名称、商品描述、价格、库存、创建时间等。
- 主键:商品ID。
3. 订单表(Order)- 字段:订单ID、用户ID、商品ID、数量、总金额、下单时间等。
- 主键:订单ID。
- 外键:用户ID、商品ID分别关联用户表和商品表。
4. 地址表(Address)- 字段:地址ID、用户ID、收货人姓名、手机号、省份、城市、区县、详细地址等。
- 主键:地址ID。
- 外键:用户ID关联用户表。
5. 购物车表(Cart)- 字段:购物车ID、用户ID、商品ID、数量、创建时间等。
- 主键:购物车ID。
- 外键:用户ID、商品ID分别关联用户表和商品表。
6. 支付表(Payment)- 字段:支付ID、订单ID、支付方式、支付金额、支付时间等。
- 主键:支付ID。
- 外键:订单ID关联订单表。
7. 评价表(Review)- 字段:评价ID、用户ID、商品ID、评分、评论内容、评价时间等。
- 主键:评价ID。
- 外键:用户ID、商品ID分别关联用户表和商品表。
8. 物流表(Logistics)- 字段:物流ID、订单ID、物流公司、物流单号、发货时间、收货时间等。
- 主键:物流ID。
- 外键:订单ID关联订单表。
9. 类别表(Category)- 字段:类别ID、类别名称、父类别ID、创建时间等。
- 主键:类别ID。
- 外键:父类别ID关联类别表自身。
10. 优惠券表(Coupon)- 字段:优惠券ID、优惠券名称、优惠金额、适用商品、有效期等。
进销存数据库表结构设计
1.帐类表(KIND)无索引序号中文名称英文名称类型备注1 帐类编号K_SERIAL byte2 帐类名称K_NAME text*10本表系统自动建立,共划分为15种帐类,不可增删帐类编号帐类名称备注0 上期结存进货,不参加进货统计1 购入进货,购入时必需输入供货单位名称2 自制进货3 投资转入进货4 盘盈进货5 领料出库,领料必需输入领料部门名称6 调拨出库7 报损出库8 盘亏出库9 退库对低值易耗品,在用品退为在用库存10 直接报废对于低值易耗品,在用品转报废11 领用对于低值易耗品,在用库存转在用12 调拨对于低值易耗品,在用库存减少13 报废对于低值易耗品,在用库存报废14 直进直出进出库,购入与领料对库存无影响2.物品表(GOODS)序号索引名称索引域唯一? 主索引?1 G_CODING +G_CODING Y N2 G_SERIAL +G_SERIAL Y Y序号中文名称英文名称类型备注1 物品内部编号G_SERIAL INT->long 系统内部唯一标识该物品2 物品编号G_CODING TEXT * 10 用户使用此编号访问物品&3 物品名称G_NAME TEXT*40 非空&4 物品单位G_UNIT TEXT*8 非空&5 物品规格G_STATE TEXT*206 物品类别G_CLASS INT 取自表CLASS7 备注G_REMARKS MEMO8 最小库存量G_MIN CURRENCY 为零,即无最小库存9 最大库存量G_MAX CURRENCY 为零,即无最大库存10 库存数量G_QUANT CURRENCY 控制出库数量11 虚拟库存数量G_VQUANT CURRENCY 出库时用12 库存金额G_AMOUNT CURRENCY3.类别表(CLASS)序号索引名称索引域唯一? 主索引?1 C_CODING +C_CODING Y N2 C_SERIAL +C_SERIAL Y Y序号中文名称英文名称类型备注1 类别内部序号C_SERIAL INT 系统内部唯一标识该物品2 类别编号C_CODING TEXT *10 用户使用该编号访问类别信息3 类别名称C_NAME TEXT*20 非空4 出库类型C_KIND BYTE 1.移动平均 2..先进先出3.后进先出4.实际计价*5.月末平均5 备注C_REMARKS MEMO*6 底标志C_BOTTOM BOOLEAN*7 类别级别C_LEVEL BYTE4.供货单位、使用部门(DEPART)序号索引名称索引域唯一? 主索引?1 D_CODING +D_CODING Y N2 D_SERIAL +D_SERIAL Y Y序号中文名称英文名称类型备注1 内部序号D_SERIAL INT 系统内部唯一标识该部门>0 供货单位=0 库房<0 使用部门2 单位编号D_CODING TEXT*10&3 单位名称D_NAME TEXT*404 备注D_REMARKS MEMO*5 单位级别D_LEVEL INTEGER*6 底标志D_BOTTOM BOOLEAN*7 类别D_Kind byte 0.删除标志 1.领料部门2.供货单位3.销售单位4.库房5.帐本表(LEDGER)序号索引名称索引域唯一? 主索引?1 L_SERIAL1 +L_SERIAL1 Y Y2 L_SERIAL +L_SERIAL;L_MONTH N N*3 L_CODING +L_CODING;+L_MONTH; N N序号中文名称英文名称类型备注1 帐目流水号L_SERIAL1 LONG 系统自动分配唯一标识2 物品编号L_SERIAL INT->Long 取自GOODS表3 帐目日期L_DAY DATE4 凭证号L_CODING TEXT*10&5 摘要L_REMARKS TEXT*406 进出数量L_QUANT1 CURRENCY7 进出金额L_AMOUNT1 CURRENCY8 进出差价L_AMOUNT11 CURRENCY9 结存数量L_QUANT3 CURRENCY10 结存金额L_AMOUNT3 CURRENCY11 结存差价L_AMOUNT33 CURRENCY12 帐类L_KIND BYTE 取自表KIND13 供应商序号L_GYS INT 取自表DEPART,>014 领料部门序号L_DEPT INT 取自表DEPART, <015 库存数量L_STOCK CURRENCY 扩展使用&16 卡片编号->库存明L_CARD LONG 扩展使用细序号(出库时用)17 财务月份L_MONTH INT18 登帐标志L_TallyFlag byte 0或Null:未登帐 1:已登帐*19 录入操作员名称L_OperName TEXT*12*20 登帐操作员名称L_TOperName Text*126.库存明细表(CONT)序号索引名称索引域唯一? 主索引?1 CONT1_SERIAL +S_SERIAL1 Y Y2 CONT2_SERIAL +S_SERIAL N N&3 CONT3_SERIAL +S_LSERIAL Y N序号中文名称英文名称类型备注1 进货日期S_DATE Date2 帐目流水号S_SERIAL1 LONG 自动计数3 物品编号S_SERIAL INT->Long4 凭证号S_CODING TEXT*105 进货数量S_QUANT1 CURRENCY6 库存数量S_QUANT2 CURRENCY7 虚拟库存数量S_VQUANT CURRENCY8 进货单价S_AMOUNT1 CURRENCY*9 入库帐流水号S_LSERIAL LONG 对应LEDGER帐的流水号7.在用帐本(LEDGER1)序号索引名称索引域唯一? 主索引?1 L1_SERIAL +L_SERIAL;L_DAY N N2 L1_SERIAL1 +L_SERIAL1 Y Y3 L1_LSERIAL1 +L_LSERIAL1 Y N序号中文名称英文名称类型备注1 帐目流水号L_SERIAL1 LONG 系统内部唯一标识该物品2 物品编号L_SERIAL INT->Long3 帐目日期L_DAY DATE4 凭证号L_CODING TEXT*10&5 摘要L_REMARKS MEMO6 进出数量L_QUANT1 CURRENCY7 进出金额L_AMOUNT1 CURRENCY8 帐类L_KIND BYTE9 领料部门L_DEPART INT10 对应帐本LEDGER的流水号L_LSerial1 long 记帐时取LEDEGER表的L_Serial18.在用物品库存表(WAREHOUSE)序号索引名称索引域唯一? 主索引?1 W_SERIAL +W_DAY;+W_SERIAL;+W_DEPART Y N序号中文名称英文名称类型备注1 在用物品序号W_SERIAL INT->LONG2 占用部门W_DEPART INT3 占用库存日期W_DAY INT4 占用数量W_QUANT1 CURRENCY5 占用金额W_AMOUNT1 CURRENCY9.物品进销存表(STOCK)序号索引名称索引域唯一? 主索引?1 S_SERIAL +S_SERIAL;S_MONTH Y Y2序号中文名称英文名称类型备注1 物品编号S_SERIAL INT->long 系统内部唯一标识该物品2 财务月份S_MONTH INT3 进货数量S_QUANT1 CURRENCY4 进货金额S_AMOUNT1 CURRENCY5 进货差价S_AMOUNT11 CURRENCY 扩展使用6 出库数量S_QUANT2 CURRENCY7 出库金额S_AMOUNT2 CURRENCY8 出库差价S_AMOUNT22 CURRENCY 扩展使用9 结存数量S_QUANT3 CURRENCY10 结存金额S_AMOUNT3 CURRENCY11 结存差价S_AMOUNT33 CURRENCY 扩展使用10.分类进货表(STOCK1)序号索引名称索引域唯一? 主索引?1 S1_SERIAL +S_SERIAL;+S_MONTH Y Y序号中文名称英文名称类型备注1 物品序号S_SERIAL INT->long 系统内部唯一标识该物品2 帐本月份S_MONTH INT3 本月购入数量S_QUANT1 CURRENCY4 本月购入金额S_AMOUNT1 CURRENCY5 本月自制数量S_QUANT2 CURRENCY6 本月自制金额S_AMOUNT2 CURRENCY7 本月投资转入数量S_QUANT3 CURRENCY8 本月投资转入金额S_AMOUNT3 CURRENCY9 本月盘盈数量S_QUANT4 CURRENCY10 本月盘盈金额S_AMOUNT4 CURRENCY11.分类出库表(STOCK2)序号索引名称索引域唯一? 主索引?1 S1_SERIAL +S_SERIAL;S_MONTH Y Y序号中文名称英文名称类型备注1 物品序号S_SERIAL INT->long 系统内部唯一标识该物品2 帐本月份S_MONTH INT3 本月领料数量S_QUANT1 CURRENCY4 本月领料金额S_AMOUNT1 CURRENCY5 本月调拨数量S_QUANT2 CURRENCY6 本月调拨金额S_AMOUNT2 CURRENCY7 本月报损数量S_QUANT3 CURRENCY8 本月报损金额S_AMOUNT3 CURRENCY9 本月盘亏数量S_QUANT4 CURRENCY10 本月盘亏金额S_AMOUNT4 CURRENCY12.帐类统计表(STOCK3)序号索引名称索引域唯一? 主索引?1 S3_SERIAL +S_DAY;+S_SERIAL;+S_DEPART Y N序号中文名称英文名称类型备注1 类别序号S_SERIAL INT 取自表CLASS2 帐类序号S_DEPART INT 取自表KIND3 帐本月份S_DAY INT4 数量S_QUANT1 CURRENCY 该类别本帐类数量合计5 金额S_AMOUNT1 CURRENCY 该类别本帐类金额合计13.供应商供应报表(STOCK5)序号索引名称索引域唯一? 主索引?1 S5_SERIAL +S_DAY;+S_SERIAL;+S_DEPART Y N序号中文名称英文名称类型备注1 物品序号S_SERIAL INT->long 供货物品,取自表GOODS2 供应商序号S_DEPT INT 供货单位,取自表DEPART3 帐本月份S_DAY INT4 数量S_QUANT CURRENCY 供货数量合计5 金额S_AMOUNT CURRENCY 供货金额合计14.部门领料报表(STOCK6)序号索引名称索引域唯一? 主索引?1 S6_SERIAL +S_DAY;+S_SERIAL;S_DEPART Y N序号中文名称英文名称类型备注1 物品序号S_SERIAL INT->LONG 部门领料物品;取自库GOODS2 部门序号S_DEPART INT 领料部门;取自库DEPART3 帐本月份S_DAY INT4 数量S_QUANT1 CURRENCY 领料物品数量合计5 金额S_AMOUNT1 CURRENCY 领料物品金额合计15. 供应商应付帐汇总表(SupplyPay)序号索引名称索引域唯一? 主索引?1 Supply_index +P_month;+P_DSerial Y Y序号中文名称英文名称类型备注1 供应商编号P_DSerial integer 唯一对应供应商2 月份序号P_Month integer 年*12+月3 月初应付金额P_MBOAmt currency4 本月累计应付金额P_MTOAmt currency5 年累计应付金额P_YTOAmt currency6 本月累计已付金额P_MTPAmt currency7 年累计已付金额P_YTPAmt currency16.供应商应付帐明细表(SupplyPayDetail)序号索引名称索引域唯一? 主索引?1 PD_DSerial +PD_Month+PD_DSerial; N N2 PD_LSerial1 PD_LSerial1 Y N序号中文名称英文名称类型备注1 供应商编号(主索引2)PD_DSerial integer 唯一对应一个供应商2 帐目日期PD_Date date 入库单日期3 入库月份(主索引1)PD_Month integer 年*12+月4 入库帐流水号PD_LSerial1 long5 应付金额PD_OAmt currency6 已付金额PD_PAmt currency7 付帐标志PD_OPFlag boolean default,false应付金额=已付金额,True17.月末平均物品月合计表(GGether)此表的内容仅对月末平均的物品进行统计,统计是在物品的入库帐计帐时进行。
数据库表结构文档模板
数据库表结构文档模板
以下是一个简单的数据库表结构文档模板,你可以根据需要扩展和自定义,以满足具体的项目要求:
#数据库表结构文档
##表1:表名
###描述
(在这里写表的简要描述)
###字段列表
|字段名|数据类型|长度|是否为主键|是否允许为空|默认值|描述|
|--------|----------|------|------------|--------------|--------|------|
|列1|类型|长度|是/否|是/否|默认值|描述|
|列2|类型|长度|是/否|是/否|默认值|描述|
|列3|类型|长度|是/否|是/否|默认值|描述|
|...|...|...|...|...|...|...|
###索引列表
|索引名|类型|字段列表|描述|
|----------|---------|--------------|------|
|索引1|唯一|列1,列2|描述|
|索引2|普通|列3|描述|
|...|...|...|...|
##表2:另一个表
(重复上述结构)
请注意,实际的数据库表结构文档可能会更加详细,包括表之间的关系、外键约束等信息。
这个模板主要提供了一个基本框架,你可以根据项目的实际需求进行修改和扩展。
mysql数据库表设计案例
mysql数据库表设计案例一、引言1.数据库表设计的重要性在当今信息化时代,数据库已成为各类应用系统的基础。
数据库表设计作为数据库建设的核心环节,直接影响到系统的性能、可维护性和扩展性。
一个优秀的数据库表设计能够提高数据查询效率,降低系统资源消耗,为业务发展提供有力支持。
2.MySQL数据库简介MySQL是一款广泛应用于各类项目的开源关系型数据库管理系统。
它基于Structured Query Language(SQL)进行数据操作,支持多种存储引擎,具有高性能、易使用、成本低等优点。
在众多开源数据库中,MySQL凭借其强大的功能和广泛的应用场景,成为许多企业和开发者的首选。
二、MySQL数据库表设计案例分析1.案例一:用户信息表(1)表结构设计:用户信息表主要包括用户ID、用户名、密码、邮箱、手机号、注册时间等字段。
(2)字段类型与约束:用户ID采用整型(INT)存储,设置为主键;用户名采用字符串类型(VARCHAR)存储,长度限制为255;密码采用字符串类型(VARCHAR)存储,长度限制为255,添加加密约束;邮箱采用字符串类型(VARCHAR)存储,长度限制为255,添加唯一约束;手机号采用字符串类型(VARCHAR)存储,长度限制为20;注册时间采用日期时间类型(DATETIME)存储。
(3)索引与查询优化:创建用户名、邮箱和注册时间的索引,以提高查询效率。
2.案例二:商品信息表(1)表结构设计:商品信息表主要包括商品ID、商品名称、商品类别、价格、库存、发布时间等字段。
(2)字段类型与约束:商品ID采用整型(INT)存储,设置为主键;商品名称采用字符串类型(VARCHAR)存储,长度限制为255;商品类别采用整型(INT)存储,关联类别表;价格采用浮点型(FLOAT)存储;库存采用整型(INT)存储;发布时间采用日期时间类型(DATETIME)存储。
(3)索引与查询优化:创建商品名称、类别ID和价格的索引,以提高查询效率。
数据库表结构设计参考
数据库表结构设计参考.)表名外部单位表(DeptOut 约束条件非空空数据类型(精度范围) /列名外部单位ID N 变长字符串(50) 主键 N 变长字符串类型 (50)N 单位名称(255) 变长字符串 (50) 单位简称变长字符变长字符(255)单位全交换类交换、市机、直送、邮变长字符(50)N(6)单位邮变长字符变长字符(50))单位标英整排序(4)(50)交换变长字符变长字符(50)单位领变长字符单位电(50)变长字符所属城(50)变长字符(255)单位地备(255)变长字符补充说300条左右,一般不做修改。
初始化记录该表记录数表外部单位子表DeptOutSu数据类型(精度范围列非约束条变长字符(50)外部子单IDN外ID变长字符(50)N单位名N变长字符(255)变长字符单位编(50)该表记录数一般很补充说表内部单位表DeptI数据类型(精度范围非列约束条IDN(50)变长字符主内部单类N变长字符(50) (255)变长字符N单位名(50)变长字符单位简变长字符单位全(255)工作职排序整(4)单位领导(50) 变长字符串 (50) 单位电话(分机)变长字符串 (255)变长字符串备注.条以内),一般不做修改。
维护一次后很少修改补充说明该表记录数较小(100内部单位子表(DeptInSub)表名约束条件数据类型(精度范围)空列名/非空 (50) N 变长字符串内部子单位ID变长字符串(50) 父ID N 外键 (255) 单位名称 N 变长字符变长字符(50)单位编领导、部变长字符(50)单位类Int排序该表记录数一般很补充说省、直辖市表Provinc表约束条数据类型(精度范围列非IDN变长字符(50)名外(50)N变长字符变长字符N(255)投递补充说该表记录数固表急件电话语音记录表TelCal数据类型(精度范围列非约束条NID变长字符(50)(50)N发送部变长字符N接收部变长字符(50)拨打电话号(50)变长字符变长字符拨打内(50)Int呼叫次Datetime呼叫时该表对应功能不完善,最后考虑此补充说表摄像头图像记录表ScreenSho数据类型(精度范围非约束条列变长字符(50)NIDN拍照时Datetime取件人所属部N变长字符(50)取件人用户名变长字符串 (50)取件人卡号变长字符串 (50)BLOB/Image图片文件.该表记录数可能较多,并且有大对象补充说明BoxSet)表名箱体设置表(约束条件列名空/非空数据类型(精度范围) (50) N ID 变长字符串Int 主控箱体号 NInt分控箱体号 N变长字符(50)箱体名变长字符所属部门名(50)外ID变长字符(50)控制用该表记录数比实际分控箱体数略多,小补充说表信件表Letter数据类型(精度范围非约束条列N变长字符信ID(50)收N变长字符(50)发N信件类挂号变长字符(50)交汇款(50)信件年变长字符变长字符(50)信件条一维条变长字符(50)信件信件条码的单元变长字符(255)接收单变长字符(255)接收二级单外变长字符(50)接收人名变长字符(50)箱体(50)变长字符箱体单(255)变长字符发送单(50)变长字符密变长字符(50)紧急程Datetime限制时(50)变长字符大宗变长字符(255)备变长字符箱状(50)登变长字符外(50)创建部创建时Datetime(50)变长字符外修改部修改变长字符(50)外键修改时间 Datetime信件内容?是否直送?直送列表码?序列号?转移到信件历史记录表该表记录数大,此信件表删除时的Trigger补充说明)信件历史记录表(表名LetterHistory约束条件列名空/数据类型(精度范围)非NID信变长字符(50) (50)N变长字符发收变长字符(50)汇款挂号交信件类N(50)变长字符信件年变长字符信件条(50)一维条信件变长字符(50)信件条码的单元变长字符(255)接收单(255)接收二级单变长字符(50)接收人名外变长字符变长字符箱体(50)变长字符(50)箱体单发送单(255)变长字符变长字符密(50)变长字符(50)紧急程Datetime限制时(255)变长字符备登箱状变长字符(50)外变长字符创建部(50)变长字符(50)创建外创建时Datetime修改部(50)变长字符外修改外(50)变长字符修改时Datetime该表记录数大,由原来的信件表删除时补充说Trigge转移到此表信函流程跟踪表LetterTrac数据类型(精度范围列非约束条变长字符(50)IDN变长字符(50)N信ID外连接信函变长字符(100)条/??? 变长字符串(50) 登记流程类型外键(50) 变长字符串创建部门(50) 变长字符串创建人外键 Datetime创建时间.该表记录数较小,因为模板一般用户自定义的个数不会太多补充说明LetterBulkTpl)表名大宗发信模板表(约束条件数据类型(精度范围)空/列名非空N 变长字符串(50) 模板ID(50)模板名N变长字符N选择单位类外变长字符(50)外N单位名变长字符(255)(50)变长字符二级单位名变长字符(50)单位用户顺序Int补充说该表记录数较小,因为模板一般用户自定义的个数不会太发信排序表表LetterOrde非列约束条数据类型(精度范围(50)N变长字符ID变长字符(50)N发送方N外变长字符单位名(50)N外信ID变长字符(50)(50)清单变长字符变长字符排序单(50)排序用户变长字符(50)排序时Datetime补充说该表记录数普通,使用扫描枪录入。
rbac2数据库表结构设计
RBAC2数据库表结构设计在基于角色的访问控制(RBAC)系统中,有几个主要的数据库表来存储系统所需的信息。
以下是一个典型的RBAC2数据库表结构设计。
1. 用户表(Users)* user_id:用户ID(主键)* username:用户名* password:密码* email:电子邮件* 其他用户相关信息...2. 角色表(Roles)* role_id:角色ID(主键)* role_name:角色名称* 其他角色相关信息...3. 权限表(Permissions)* permission_id:权限ID(主键)* permission_name:权限名称* 其他权限相关信息...4. 资源表(Resources)* resource_id:资源ID(主键)* resource_name:资源名称* 其他资源相关信息...5. 用户角色关联表(User_Role)* user_id:用户ID(外键,关联Users表)* role_id:角色ID(外键,关联Roles表)* 主键(user_id, role_id)6. 角色权限关联表(Role_Permission)* role_id:角色ID(外键,关联Roles表)* permission_id:权限ID(外键,关联Permissions表)* 主键(role_id, permission_id)7. 用户资源关联表(User_Resource)* user_id:用户ID(外键,关联Users表)* resource_id:资源ID(外键,关联Resources表)* 主键(user_id, resource_id)8. 角色资源关联表(Role_Resource)* role_id:角色ID(外键,关联Roles表)* resource_id:资源ID(外键,关联Resources表)* 主键(role_id, resource_id)这些表结构的设计可以满足RBAC2的基本需求,包括用户、角色、权限和资源的定义以及他们之间的关联关系。
数据库表的结构
数据库表的结构数据库表的结构是指数据库中存储数据的方式和组织形式的一种表示方法。
它由数据表名、字段名、数据类型、索引、约束等元素组成,用来定义和描述数据的结构和特性。
正确的数据库表结构设计不仅可以提高数据库的性能和效率,还能保证数据的完整性和一致性。
以下是数据库表结构设计的一些相关参考内容。
1. 表名:表名应该具有清晰、简洁和易于理解的含义,通常使用复数形式,避免使用过长或过于复杂的名称。
例如,学生表可以命名为"students"。
2. 字段名:字段名应该准确描述字段所代表的含义,尽量避免使用缩写或不规范的命名方式。
字段名应该使用小写字母,不同单词之间可以使用下划线或驼峰命名法分隔。
例如,学生表中的字段可以命名为"student_id"、"student_name"等。
3. 数据类型:根据不同的数据类型选择合适的数据类型来存储数据,避免浪费存储空间和提高数据读写效率。
常见的数据类型包括整数型(int)、浮点型(float)、字符串型(varchar)、日期时间型(datetime)等。
4. 索引:索引可以提高数据库的查询效率,通过在某些字段上创建索引来加快查找和排序的速度。
通常在主键和经常用于查询的字段上创建索引。
需要注意的是,索引不宜过多,否则会增加数据写入的成本。
5. 主键:主键是用来唯一标识数据表中每一个记录的字段,可以确保数据的唯一性和删除操作的准确性。
主键可以是单一字段,也可以是多个字段的组合。
常见的主键类型包括自增长整数、GUID等。
6. 外键:外键用于建立数据表之间的联系和关联,保持数据的完整性和一致性。
外键是一个指向其他表主键的字段,用来创建表之间的关系。
外键可以帮助实现表与表之间的数据一致性,并且可以确保数据的正确性。
7. 约束:约束用于限制和定义数据的完整性和一致性,可以在创建表时或者后期添加约束。
常见的约束包括主键约束、唯一约束、非空约束、默认值约束、检查约束等。
数据库设计(er图与逻辑结构表)示例
1.1 数据库概念设计1.1.1 数据库E-R设计图图1:数据库E-R设计图1.1.2 E-R设计图说明表1 数据库E-R实体表实体名称实体描述雇员雇员的基本信息食品食品的基本信息顾客顾客的基本信息订单订单的基本信息菜单菜单的基本信息1.2 数据库逻辑设计1.2.1 数据库逻辑模式结构数据表中文名数据表名备注雇员GuYuan 用于存储系统中雇员数据厨师CS 用于存储系统中厨师数据订单受理人DDSLR 用于存储系统中订单受理人基本信息数据经理JL 用于存储系统中经理的基本信息数据顾客GuKe 用于存储系统中顾客的基本信息数据就餐卡JCK 用于存储系统中就餐卡的基本信息数据订单DingDan 用于存储系统中订单基本数据订单明细DDMX 用于存储系统中订单明细的基本数据食品ShiPin用于存储系统中食品的数据常规菜单CGCD 用于存储系统中常规菜单的数据促销菜单CXCD 用于系统中促销菜单的数据班次BanCi 用于系统中班次的数据签到记录QDJL 用于系统中签到记录的数据加班记录JBJL 用于系统中加班记录的数据1.2.2 数据库逻辑结构()表名DDSLR表注释或说明存储订单受理人信息数据操作类型查询(主要的)、插入、修改数据访问频度一般Field Name Field Type字段类型Length字段长度Key字段约束Description字段描述英文名称DDID char 10 PK 订单受理人ID Xsxj Date 小时薪金额Ske number 10,2 收款额Name char 4 FK 姓名。
数据库结构设计表
数据库结构设计是建立数据库表格的关键部分,它决定了如何组织数据以满足应用程序的需求。
以下是设计数据库表格时需要考虑的一些常见要素和示例:1. **表格命名**:选择有意义的表格名称,描述表格所存储数据的内容。
例如,如果您正在设计一个在线商店的数据库,可以创建名为"products"的表格来存储产品信息。
2. **字段命名**:选择具有描述性的字段名称,以便轻松理解和查询数据。
例如,一个"products"表格可以包括字段如下:- `product_id`:产品唯一标识符。
- `product_name`:产品名称。
- `description`:产品描述。
- `price`:产品价格。
- `stock_quantity`:产品库存数量。
3. **数据类型**:为每个字段选择合适的数据类型,以确保存储有效的数据并节省存储空间。
例如,`price`字段可以使用`DECIMAL`或`FLOAT`数据类型,而`product_id`字段可以使用`INT`数据类型。
4. **主键**:确定每个表格的主键,它是唯一标识表格中每行数据的字段。
通常,主键是自增长的整数。
在上面的示例中,`product_id`可以作为主键。
5. **外键**:如果表格之间存在关系,定义外键以确保数据的完整性。
例如,如果有一个`orders`表格,可以在`orders`表格中创建一个外键,引用`products`表格中的`product_id`字段,以建立订单和产品之间的关系。
6. **索引**:为经常查询的字段创建索引,以提高检索性能。
例如,您可以在`product_name`字段上创建一个索引,以便根据产品名称进行快速搜索。
7. **默认值和约束**:定义字段的默认值和约束,以确保数据的一致性和完整性。
例如,可以为`price`字段定义一个默认值,以确保在没有指定价格时自动分配默认价格。
数据库表设计案例
数据库表设计案例一、书籍表(books)1. book_id(书籍编号)2. title(书名)3. author(作者)书是谁写的很重要呀。
可以是一个人,像J.K.罗琳,也可以是一群人合作写的。
这个字段就把作者的名字存起来,要是有多个作者,我们可以用某种方式分开,比如用逗号隔开,这样就知道是哪些大神创作了这本书。
4. publication_year(出版年份)这能让我们知道这本书是什么时候和读者见面的。
就像看一个人的出生年份一样,不同年代出版的书可能会有不同的风格和排版。
比如说80年代出版的书可能封面设计比较复古,而现在出版的书可能会有炫酷的3D封面(哈哈,夸张了点)。
5. publisher(出版社)是哪家出版社把这本书推向市场的呢?像人民文学出版社、中信出版社这些名字就存在这里。
不同的出版社可能会对书籍的质量、装帧有不同的标准,这个字段能帮助我们区分。
6. category(类别)7. isbn(国际标准书号)这是一个全球通用的书的标识代码,就像每本书的国际通行证。
有了这个,在全球的图书贸易和管理中就更容易识别和追踪这本书了。
二、读者表(readers)1. reader_id(读者编号)每个来图书馆借书的读者都有一个自己的编号,这是他们在图书馆的专属代码。
不管是学霸型读者还是休闲型读者,都有这么一个独一无二的reader_id。
2. name(姓名)这就是读者的大名啦,张三李四王二麻子之类的。
这样我们就能知道是谁借了书,要是有人逾期不还书,我们就可以对着这个名字去催还(嘿嘿)。
3. gender(性别)男或者女,或者其他(现在可是多元化的社会嘛)。
这个字段可以帮助我们做一些统计,比如看看男性读者和女性读者对不同类型书籍的偏好有什么不同。
说不定男性更喜欢看科幻小说,女性更喜欢看言情小说呢(只是一种可能的情况啦)。
4. age(年龄)读者的年龄也很重要哦。
不同年龄层的读者阅读习惯可能大不相同。
进销存数据库表结构设计
进销存数据库表结构设计1.帐类表(KIND)无索引序号中文名称英文名称类型备注 1 帐类编号 K_SERIAL byte 2 帐类名称K_NAME text*10本表系统自动建立,共划分为15种帐类,不可增删帐类编号帐类名称备注0 上期结存进货,不参加进货统计1 购入进货,购入时必需输入供货单位名称2 自制进货3 投资转入进货4 盘盈进货5 领料出库,领料必需输入领料部门名称6 调拨出库7 报损出库8 盘亏出库9 退库对低值易耗品,在用品退为在用库存10 直接报废对于低值易耗品,在用品转报废11 领用对于低值易耗品,在用库存转在用12 调拨对于低值易耗品,在用库存减少13 报废对于低值易耗品,在用库存报废14 直进直出进出库,购入与领料对库存无影响2.物品表(GOODS)序号索引名称索引域唯一? 主索引? 1 G_CODING +G_CODING Y N 2G_SERIAL +G_SERIAL Y Y序号中文名称英文名称类型备注 1 物品内部编号 G_SERIAL INT->long系统内部唯一标识该物品 2 物品编号 G_CODING TEXT * 10 用户使用此编号访问物品 &3 物品名称 G_NAME TEXT*40 非空 &4 物品单位 G_UNIT TEXT*8 非空 &5 物品规格 G_STATE TEXT*206 物品类别 G_CLASS INT 取自表CLASS7 备注 G_REMARKS MEMO8 最小库存量 G_MIN CURRENCY 为零,即无最小库存 9 最大库存量 G_MAX CURRENCY 为零,即无最大库存 10 库存数量 G_QUANT CURRENCY 控制出库数量 11 虚拟库存数量 G_VQUANT CURRENCY 出库时用 12 库存金额 G_AMOUNT CURRENCY3.类别表(CLASS)序号索引名称索引域唯一? 主索引? 1 C_CODING +C_CODING Y N 2C_SERIAL +C_SERIAL Y Y序号中文名称英文名称类型备注 1 类别内部序号 C_SERIAL INT 系统内部唯一标识该物品 2 类别编号 C_CODING TEXT *10 用户使用该编号访问类别信息3 类别名称 C_NAME TEXT*20 非空4 出库类型 C_KIND BYTE 1.移动平均 2..先进先出3.后进先出4.实际计价*5.月末平均 5 备注 C_REMARKS MEMO*6 底标志 C_BOTTOM BOOLEAN*7 类别级别 C_LEVEL BYTE4.供货单位、使用部门(DEPART) 序号索引名称索引域唯一? 主索引? 1D_CODING +D_CODING Y N 2 D_SERIAL +D_SERIAL Y Y序号中文名称英文名称类型备注 1 内部序号 D_SERIAL INT 系统内部唯一标识该部门>0 供货单位=0 库房<0 使用部门 2 单位编号 D_CODING TEXT*10&3 单位名称 D_NAME TEXT*404 备注 D_REMARKS MEMO*5 单位级别 D_LEVEL INTEGER*6 底标志 D_BOTTOM BOOLEAN*7 类别 D_Kind byte 0.删除标志 1.领料部门2.供货单位3.销售单位4.库房5.帐本表(LEDGER)序号索引名称索引域唯一? 主索引?1 L_SERIAL1 +L_SERIAL1 Y Y2 L_SERIAL +L_SERIAL;L_MONTH N N*3 L_CODING +L_CODING;+L_MONTH; N N序号中文名称英文名称类型备注1 帐目流水号 L_SERIAL1 LONG 系统自动分配唯一标识2 物品编号 L_SERIAL INT->Long 取自GOODS表3 帐目日期 L_DAY DATE4 凭证号 L_CODING TEXT*10&5 摘要 L_REMARKS TEXT*406 进出数量 L_QUANT1 CURRENCY7 进出金额 L_AMOUNT1 CURRENCY8 进出差价 L_AMOUNT11 CURRENCY9 结存数量 L_QUANT3 CURRENCY10 结存金额 L_AMOUNT3 CURRENCY11 结存差价 L_AMOUNT33 CURRENCY12 帐类 L_KIND BYTE 取自表KIND 13 供应商序号 L_GYS INT 取自表DEPART,>0 14 领料部门序号 L_DEPT INT 取自表DEPART, <0 15 库存数量L_STOCK CURRENCY 扩展使用 &16 卡片编号->库存明L_CARD LONG 扩展使用细序号(出库时用)17 财务月份 L_MONTH INT18 登帐标志 L_TallyFlag byte 0或Null:未登帐 1:已登帐 *19 录入操作员名称 L_OperName TEXT*12*20 登帐操作员名称 L_TOperName Text*126.库存明细表(CONT) 序号索引名称索引域唯一? 主索引?1 CONT1_SERIAL +S_SERIAL1 Y Y2 CONT2_SERIAL +S_SERIAL N N &3 CONT3_SERIAL +S_LSERIAL Y N序号中文名称英文名称类型备注1 进货日期 S_DATE Date2 帐目流水号 S_SERIAL1 LONG 自动计数3 物品编号 S_SERIAL INT->Long4 凭证号 S_CODING TEXT*105 进货数量 S_QUANT1 CURRENCY6 库存数量 S_QUANT2 CURRENCY7 虚拟库存数量 S_VQUANT CURRENCY8 进货单价 S_AMOUNT1 CURRENCY *9 入库帐流水号 S_LSERIAL LONG 对应LEDGER帐的流水号7.在用帐本(LEDGER1)序号索引名称索引域唯一? 主索引?1 L1_SERIAL +L_SERIAL;L_DAY N N2 L1_SERIAL1 +L_SERIAL1 Y Y3 L1_LSERIAL1 +L_LSERIAL1 Y N序号中文名称英文名称类型备注 1 帐目流水号 L_SERIAL1 LONG 系统内部唯一标识该物品 2 物品编号 L_SERIAL INT->Long3 帐目日期 L_DAY DATE4 凭证号 L_CODING TEXT*10&5 摘要 L_REMARKS MEMO6 进出数量 L_QUANT1 CURRENCY7 进出金额 L_AMOUNT1 CURRENCY8 帐类 L_KIND BYTE9 领料部门 L_DEPART INT10 对应帐本LEDGER的流L_LSerial1 long 记帐时取LEDEGER表的水号 L_Serial18.在用物品库存表(WAREHOUSE) 序号索引名称索引域唯一? 主索引? 1W_SERIAL +W_DAY;+W_SERIAL;+W_DEPART Y N序号中文名称英文名称类型备注 1 在用物品序号 W_SERIAL INT->LONG 2 占用部门 W_DEPART INT 3 占用库存日期 W_DAY INT 4 占用数量 W_QUANT1 CURRENCY 5 占用金额 W_AMOUNT1 CURRENCY9.物品进销存表(STOCK) 序号索引名称索引域唯一? 主索引? 1 S_SERIAL +S_SERIAL;S_MONTH Y Y 2序号中文名称英文名称类型备注 1 物品编号 S_SERIAL INT->long 系统内部唯一标识该物品 2 财务月份 S_MONTH INT3 进货数量 S_QUANT1 CURRENCY4 进货金额 S_AMOUNT1 CURRENCY5 进货差价 S_AMOUNT11 CURRENCY 扩展使用6 出库数量 S_QUANT2 CURRENCY7 出库金额 S_AMOUNT2 CURRENCY8 出库差价 S_AMOUNT22 CURRENCY 扩展使用 9 结存数量 S_QUANT3 CURRENCY10 结存金额 S_AMOUNT3 CURRENCY11 结存差价 S_AMOUNT33 CURRENCY 扩展使用10.分类进货表(STOCK1) 序号索引名称索引域唯一? 主索引? 1 S1_SERIAL +S_SERIAL;+S_MONTH Y Y序号中文名称英文名称类型备注 1 物品序号 S_SERIAL INT->long 系统内部唯一标识该物品 2 帐本月份 S_MONTH INT3 本月购入数量 S_QUANT1 CURRENCY4 本月购入金额 S_AMOUNT1 CURRENCY5 本月自制数量 S_QUANT2 CURRENCY6 本月自制金额 S_AMOUNT2 CURRENCY7 本月投资转入数量 S_QUANT3 CURRENCY8 本月投资转入金额 S_AMOUNT3 CURRENCY9 本月盘盈数量 S_QUANT4 CURRENCY10 本月盘盈金额 S_AMOUNT4 CURRENCY11.分类出库表(STOCK2) 序号索引名称索引域唯一? 主索引? 1 S1_SERIAL +S_SERIAL;S_MONTH Y Y序号中文名称英文名称类型备注 1 物品序号 S_SERIAL INT->long 系统内部唯一标识该物品 2 帐本月份 S_MONTH INT3 本月领料数量 S_QUANT1 CURRENCY4 本月领料金额 S_AMOUNT1 CURRENCY5 本月调拨数量 S_QUANT2 CURRENCY6 本月调拨金额 S_AMOUNT2 CURRENCY7 本月报损数量 S_QUANT3 CURRENCY8 本月报损金额 S_AMOUNT3 CURRENCY9 本月盘亏数量 S_QUANT4 CURRENCY10 本月盘亏金额 S_AMOUNT4 CURRENCY12.帐类统计表(STOCK3) 序号索引名称索引域唯一? 主索引? 1 S3_SERIAL +S_DAY;+S_SERIAL;+S_DEPART Y N序号中文名称英文名称类型备注 1 类别序号 S_SERIAL INT 取自表CLASS2 帐类序号 S_DEPART INT 取自表KIND3 帐本月份 S_DAY INT4 数量 S_QUANT1 CURRENCY 该类别本帐类数量合计5 金额 S_AMOUNT1 CURRENCY 该类别本帐类金额合计13.供应商供应报表(STOCK5) 序号索引名称索引域唯一? 主索引? 1S5_SERIAL +S_DAY;+S_SERIAL;+S_DEPART Y N序号中文名称英文名称类型备注 1 物品序号 S_SERIAL INT->long 供货物品,取自表GOODS 2 供应商序号 S_DEPT INT 供货单位,取自表DEPART 3 帐本月份 S_DAY INT4 数量 S_QUANT CURRENCY 供货数量合计5 金额 S_AMOUNT CURRENCY 供货金额合计14.部门领料报表(STOCK6) 序号索引名称索引域唯一? 主索引? 1S6_SERIAL +S_DAY;+S_SERIAL;S_DEPART Y N序号中文名称英文名称类型备注 1 物品序号 S_SERIAL INT->LONG 部门领料物品;取自库GOODS 2 部门序号 S_DEPART INT 领料部门;取自库DEPART 3 帐本月份 S_DAY INT4 数量 S_QUANT1 CURRENCY 领料物品数量合计5 金额 S_AMOUNT1 CURRENCY 领料物品金额合计15. 供应商应付帐汇总表(SupplyPay) 序号索引名称索引域唯一? 主索引?1 Supply_index +P_month;+P_DSerial Y Y序号中文名称英文名称类型备注 1 供应商编号 P_DSerial integer 唯一对应供应商 2 月份序号 P_Month integer 年*12+月 3 月初应付金额 P_MBOAmt currency4 本月累计应付金额 P_MTOAmt currency5 年累计应付金额 P_YTOAmt currency6 本月累计已付金额 P_MTPAmt currency7 年累计已付金额 P_YTPAmt currency16.供应商应付帐明细表(SupplyPayDetail) 序号索引名称索引域唯一? 主索引? 1 PD_DSerial +PD_Month+PD_DSerial; N N 2 PD_LSerial1 PD_LSerial1 Y N序号中文名称英文名称类型备注 1 供应商编号(主索引2) PD_DSerial integer 唯一对应一个供应商 2 帐目日期 PD_Date date 入库单日期 3 入库月份(主索引1) PD_Month integer 年*12+月 4 入库帐流水号 PD_LSerial1 long5 应付金额 PD_OAmt currency6 已付金额 PD_PAmt currency7 付帐标志 PD_OPFlag boolean default,false应付金额=已付金额,True17.月末平均物品月合计表(GGether) 此表的内容仅对月末平均的物品进行统计,统计是在物品的入库帐计帐时进行。
数据库表结构设计
第一范式(1NF) 确保每列保持原子性,即每列不 可再分。
第二范式(2NF) 在第一范式的基础上,消除部分 函数依赖,将数据表分解为更小 的表,并建立适当的关联。
反规范化设计
反规范化设计的定义
反规范化设计是通过引入冗余数据来改进查询 性能和简化数据操作的设计方法。
反规范化设计的好处
提高查询性能、减少JOIN操作、降低数据不一 致的风险。
反规范化设计的注意事项
避免过度冗余、维护数据一致性和完整性、定期更新冗余数据。
第三范式与多范式设计
第三范式与多范式设计的定义
01
第三范式是满足第三范式的数据库表结构,而多范式设计是指
同时满足多个范式的数据库表结构。
第三范式与多范式设计的优势
数据模型设计
概念设计
根据需求文档,设计出满足业务需求的 概念模型,如实体关系图(ER图)。
VS
逻辑设计
将概念模型转换为逻辑模型,如关系模型 ,确定每个数据表的字段和数据类型。
表结构设计
表结构设计
根据逻辑模型,设计出具体的数据库表结构,包括字段名、数据类型、长度、约束等。
索引优化
根据查询需求,合理设计索引,提高数据查询效率。
数据库表结构设计
目录
• 数据库表结构设计概述 • 数据库表的要素 • 数据库表结构设计方法 • 数据库表结构设计实践 • 数据库表结构优化 • 数据库表结构设计案例分析
01
数据库表结构设计概述
数据库表的概念
数据库表是数据库中存储数据的结构 化组织,由行和列组成,类似于电子 表格。
每列定义了数据的属性或字段,如姓 名、地址等,而每行则包含具体的数 据记录。
数据库表结构设计
数据库表结构设计1. 原始单据与实体之间的关系可以是一对一、一对多、多对多的关系。
在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。
在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。
这里的实体可以理解为基本表。
明确这种对应关系后,对我们设计录入界面大有好处。
〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。
这就是“一张原始单证对应多个实体”的典型例子。
2. 主键与外键一般而言,一个实体不能既无主键又无外键。
在E—R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。
主键与外键的设计,在全局数据库的设计中,占有重要地位。
当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。
因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。
3. 基本表的性质基本表与中间表、临时表不同,因为它具有如下四个特性:(1) 原子性。
基本表中的字段是不可再分解的。
(2) 原始性。
基本表中的记录是原始数据(基础数据)的记录。
(3) 演绎性。
由基本表与代码表中的数据,可以派生出所有的输出数据。
(4) 稳定性。
基本表的结构是相对稳定的,表中的记录是要长期保存的。
理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。
4. 范式标准基本表及其字段之间的关系, 应尽量满足第三范式。
但是,满足第三范式的数据库设计,往往不是最好的设计。
为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。
〖例2〗:有一张存放商品的基本表,如表1所示。
“金额”这个字段的存在,表明该表的设计不满足第三范式,因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。
数据库表结构设计参考
变长字符串(50)
操作时间
Datetime
补充说明
该表暂不用。
表名
信件地区邮编映射表(LetterAreaPostcode)
列名
数据类型(精度范围)
空/非空
约束条件
ID
变长字符串(50)
N
地区名称
变长字符串(50)
N
邮编
变长字符串(10)
N
补充说明
该表为基础码表,小表
表名
报刊常量表(Constant_Mgz)
约束条件
ID
变长字符串(50)
N
名称
变长字符串(50)
N
外键
投递号
变长字符串(255)
N
补充说明
该表记录数固定
表名
急件电话语音记录表(TelCall)
列名
数据类型(精度范围)
空/非空
约束条件
ID
变长字符串(50)
N
发送部门
变长字符串(50)
N
接收部门
变长字符串(50)
N
拨打电话号码
变长字符串(50)
创建者所属部门
变长字符串(50)
创建者
变长字符串(50)
创建时间
Datetime
修改者所属部门
变长字符串(50)
修改者
变长字符串(50)
修改时间
Datetime
数据库表结构设计参考
表名
外部单位表(DeptOut)
列名
数据类型(精度范围)
空/非空
约束条件
外部单位ID
变长字符串(50)
N
主键
类型
变长字符串(50)
N
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
外键 连接信函表
条码
变长字符串(100)
流程类型
变长字符串(50)
登记/???
创建部门
变长字符串(50)
外键
创建人
变长字符串(50)
外键
创建时间
Datetime
补充说明
该表记录数较小,因为模板一般用户自定义的个数不会太多
表名
大宗发信模板表(LetterBulkTpl)
列名
数据类型(精度范围)
空/非空
变长字符串(255)
N
单位简称
变长字符串(50)
单位全称
变长字符串(255)
工作职责
排序号
整型(4)
单位领导
变长字符串(50)
单位电话(分机)
变长字符串(50)
备注
变长字符串(255)
补充说明
该表记录数较小(100条以内),一般不做修改。维护一次后很少修改
表名
内部单位子表(DeptInSub)
列名
数据类型(精度范围)
Int
1-限时,0-不限
限时时间
Datetime
批示表ID
变长字符串(50)
外键 连接文件批示表
发布层次
变长字符串(50)
公开/县团级/省军级等
主送单位
变长字符串(1000)
抄送单位
变长字符串(1000)
拟稿单位
变长字符串(255)
拟稿电话
变长字符串(50)
拟稿人
变长字符串(50)
拟稿时间
Datetime
接收二级单位
变长字符串(255)
接收人名称
变长字符串(50)
外键
箱体名
变长字符串(50)
箱体单位
变长字符串(50)
发送单位
变长字符串(255)
密级
变长字符串(50)
紧急程度
变长字符串(50)
限制时间
Datetime
大宗号
变长字符串(50)
备注
变长字符串(255)
状态
变长字符串(50)
登记/箱中
创建部门
列名
数据类型(精度范围)
空/非空
约束条件
ID
变长字符串(50)
N
发送方式
变长字符串(50)
N
单位名称
变长字符串(50)
N
外键
信件ID
变长字符串(50)
N
外键
清单号
变长字符串(50)
排序单位
变长字符串(50)
排序用户名
变长字符串(50)
排序时间
Datetime
补充说明
该表记录数普通,使用扫描枪录入。清单号自动生成。
补充说明
该表暂不用。
表名
信件地区邮编映射表(LetterAreaPostcode)
列名
数据类型(精度范围)
空/非空
约束条件
ID
变长字符串(50)
N
地区名称
变长字符串(50)
N
邮编
变长字符串(10)
N
补充说明
该表为基础码表,小表
表名
报刊常量表(Constant_Mgz)
列名
数据类型(精度范围)
空/非空
约束条件
模板ID
变长字符串(50)
N
模板名称
变长字符串(50)
N
选择单位类型
变长字符串(50)
N
外键
单位名称
变长字符串(255)
N
外键
二级单位名称
变长字符串(50)
单位用户名
变长字符串(50)
顺序号
Int
补充说明
该表记录数较小,因为模板一般用户自定义的个数不会太多
表名
发信排序表(LetterOrder)
变长字符串(50)
外键
创建人
变长字符串(50)
外键
创建时间
Datetime
修改部门
变长字符串(50)
外键
修改人
变长字符串(50)
外键
修改时间
Datetime
信件内容?
是否直送?
直送列表码?
序列号?
补充说明
该表记录数大,此信件表删除时的Trigger转移到信件历史记录表
表名
信件历史记录表(LetterHistory)
Int
呼叫时间
Datetime
补充说明
该表对应功能不完善,最后考虑此表
表名
摄像头图像记录表(ScreenShot)
列名
数据类型(精度范围)
空/非空
约束条件
ID
变长字符串(50)
N
拍照时间
Datetime
N
取件人所属部门
变长字符串(50)
N
取件人用户名
变长字符串(50)
取件人卡号
变长字符串(50)
图片文件
创建者所属部门
变长字符串(50)
创建者
变长字符串(50)
创建时间
Datetime
修改者所属部门
变长字符串(50)
修改者
变长字符串(50)
修改时间
Datetime
Datetime
补充说明
该表记录数与实际文件流转业务相关,主要的表,大表。
表名
文件登记文号表(FileNo)
列名
数据类型(精度范围)
空/非空
约束条件
ID
变长字符串(50)
N
文件登记ID
Int
N
收文、发文、签报
文号
Int
N
文件类型
变长字符串(50)
文号年份
Int
文号顺序号
Int
备注
变长字符串(255)
列名
数据类型(精度范围)
空/非空
约束条件
ID
变长字符串(50)
N
IC卡类型
变长字符串(50)
N
清单号
变长字符串(50)
N
外键
IC卡内容字符串
变长字符串(1000)
N
外键
写卡单位
变长字符串(50)
写卡人
变长字符串(50)
写卡时间
Datetime
补充说明
该表暂不用。
表名
公文转信函表(File2Letter)
外键
清单号
变长字符串(50)
备注
变长字符串(255)
补充说明
表名
信函投箱历史表(LetterBoxHistory)
列名
数据类型(精度范围)
空/非空
约束条件
ID
变长字符串(50)
N
信件ID
变长字符串(50)
N
外键
信件条码
变长字符串(50)
箱体名称
变长字符串(50)
主控号
Int
分控号
Int
状态
变长字符串(50)
变长字符串(50)
文件标题
变长字符串(255)
主题词(关键字)
变长字符串(255)
收文文号
变长字符串(255)
收文类型
Int
收阅/通知/办件等
文件页数
Int
文件份数
Int
文件复印份数
Int
密级
变长字符串(50)
外键
紧急程度
变长字符串(50)
外键
文件号范围
变长字符串(50)
如:“002-009”
是否限时
外键
创建时间
Datetime
修改部门
变长字符串(50)
外键
修改人
变长字符串(50)
外键
修改时间
Datetime
补充说明
该表记录数大,由原来的信件表删除时的Trigger转移到此表
表名
信函流程跟踪表(LetterTrace)
列名
数据类型(精度范围)
空/非空
约束条件
ID
变长字符串(50)
N
信函ID
变长字符串(50)
审批单位
变长字符串(255)
审批人
变长字符串(50)
审批电话
变长字符串(50)
审批时间
Datetime
条码内容
变长字符串(500)
检查时备用
备注
变长字符串(255)
创建单位
变长字符串(255)
创建者
变长字符串(50)
创建时间
Datetime
修改者单位
变长字符串(255)
修改者
变长字符串(50)
修改时间
该表为基础码表,小表
表名
文件登记表(Files)
列名
数据类型(精度范围)
空/非空
约束条件
ID
变长字符串(50)
N
收发类型
Int
N
收文、发文、签报
信件编号
Int
N
文件条码
变长字符串(50)
来文时间
变长字符串(50)
来文单位
变长字符串(100)
来文文号
变长字符串(100)
成文时间
Datetime
文件名称
变长字符串(50)
报纸、期刊杂志
单价
两位小数
年价
两位小数
语言
变长字符串(50)
外键
邮发类型
变长字符串(50)
邮发、自办
报刊类型
变长字符串(50)
外键
刊期
变长字符串(50)
外键
出版社
变长字符串(50)
电话
变长字符串(50)