数据库设计——smallint(5) VS varchar(5)

一个比较有意思的case,写出来自嘲一下。背景很简单,同事调用我方创建账单接口,创建失败,查日志显示

Data truncation: Out of range value for column 'channel' at row 1

明显,对方传入的channel字段超过了smallint的最大值。(业务上该值不会超过smallint最大值,对方误传告终)。于是笔者顺手百度了两个点

1、smallint的最大值。答案从 -2^15 到 2^15 即(-32768到32767) 的整型数据

2、D

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
B2C网站数据库设计 B2C网站数据库 数据库名称:BD_YGGW_SHOPPING 用户 用户角色:yg_user_roles 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 user_role_id int 10 是 是 否 auto_increment role_name varchar 100 否 角色名称 role_code varchar 100 否 角色编码 role_memo text 是 角色说明 disabled enum 否 false 是否删除 用户等级:yg_user_lv 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 user_lv_id mediumint 8 是 是 否 auto_increment name varchar 100 否 等级名称 dis_count decimal 5 2 否 1.00 折扣率 default_lv enum 否 0 是否默认等级 point mediumint 8 否 0 等级所需积分 lv_type enum 否 retail 等级类型 disabled enum 是 false 是否删除 地理信息表:yg_regions B2C网站数据库设计全文共15页,当前为第1页。 B2C网站数据库设计全文共15页,当前为第1页。 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 region_id int 10 是 是 否 auto_increment p_region_id int 10 是 父地理信息ID region_path varchar 255 是 树状字符 region_grade mediumint 8 是 地区等级 local_name varchar 50 否 中文名 en_name varchar 50 是 英文名 p_1 varchar 50 是 p_2 varchar 50 是 ordernum mediumint 8 是 disabled enum 是 false 用户收货地址:yg_user_addrs 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 addr_id mediumint 8 是 是 否 auto_increment user_id mediumint 8 否 0 用户名id name varchar 50 是 用户 country varchar 30 是 国家 province varchar 30 是 省份 city varchar 50 是 城市 area varchar 255 是 区县 addr varchar 255 是 详细地址 zip varchar 20 是 邮编 tel varchar 30 是 固定电话 mobile varchar 30 是 移动电话 disabled enum 是 false 是否删除 用户表:yg_user B2C网站数据库设计全文共15页,当前为第2页。 B2C网站数据库设计全文共15页,当前为第2页。 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 user_id mediumint 8 是 是 否 auto_increment user_role_id mediumint 8 否 用户角色 user_lv_id mediumint 8 否 0 用户等级 uname varchar 50 否 用户名 name varchar 50 是 用户姓名 password varchar 32 是 用户密码 mobile varchar 30 是 移动电话 tel varchar 30 是 固定电话 email varchar 200 否 邮箱 zip varchar 20 是 邮编 country varchar 30 是 国家 province varchar 20 是 省份 city varchar 20 是 城市 area varchar 255 是 区县 addr varchar 255 是 详细地址 b_year smallint 5 是 出生年 b_month tinyint 3 是 出生月 b_day tinyint 3 是 出生日 sex enum 否 1 性别 point mediumint 8 否 0 用户积分 reg_ip varchar 16 是 注册IP regtime int 10 是 注册时间 pw_answer varchar 250 是 密码问题答案 pw_question varchar 250 是 密码问题 order_num mediumint 8 是 0 排序 disabled enum 是 false 是否删除 remark text 是 备注 login_
库 存 管 理 系 统 ----系统设计 一 功能设计 总原则: 首先要保证系统总目标的实现,其次注意模块的独立性要强。各模块的接口应简单明了 。 系统结构图:功能模块的划分,数据录入、库存分析、查询系统 各功能模块的描述:输入,输出,功能。 二 数据库设计 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
顾客组设置表(usergroups)结构 序号 字段 描述 类型和长度 主键 可空 默认值 1 groupid 自动编号 smallint(6) 是 否 无 2 classes 类型 varchar(30) 否 否 无 3 grouptitle 组名称 varchar(30) 否 否 无 4 groupdiscount 折扣 float 否 否 0 顾客信息表(customers)结构 序号 字段 描述 类型和长度 主键 可空 默认值 1 customers_id 自动编号 smallint(6) 是 否 无 2 email 用户名称 varchar(96) 否 否 无 3 groupid 组名称 int(10) 否 否 无 4 regdate 注册时间 int(10) 否 否 0 5 lastvist 最后登陆时间 int(10) 否 否 0 6 money 消费总金额 decimal(15,2) 否 否 0 7 qq QQ联系方式 varchar(20) 否 否 无 8 msn msn联系方式 varchar(100) 否 否 无 产品分类表(classes)结构 序号 字段 描述 类型和长度 主键 可空 默认值 1 rid 自动编号 mediumint(8) 是 否 无 2 email 用户名称 varchar(96) 否 否 无 3 products_id 产品id int(10) 否 否 无 4 review 评论内容 text 否 否 0 5 date_added 添加时间 int(10) 否 否 0 6 viewed 被浏览次数 mediumint(8) 否 否 0 产品表(products)结构 序号 字段 描述 类型和长度 主键 可空 默认值 1 products_id 自动编号 mediumint(8) 是 否 无 2 classes_id 分类编号 mediumint(8) 否 否 0 3 name 产品名称 varchar(64) 否 否 无 4 model 产品单位 varchar(64) 否 否 无 5 image 产品展示图片链接 varchar(64) 否 否 无 6 price 产品价格 decimal(15,2) 否 否 0 7 weight 产品质量 decimal(5,2) 否 否 0 8 description 产品描述 text 否 否 无 9 manufacturer 生产厂商 varchar(64) 否 否 无 订单表联系信息(orders)结构 序号 字段 描述 类型和长度 主键 可空 默认值 1 orders_id 自动编号 mediumint(8) 是 否 无 2 d_name 用户联系姓名 varchar(100) 否 否 无 3 cid 会员id int(10) 否 否 无 4 d_street_address 会员地址 varchar(100) 否 否 无 5 d_tel_mobile 会员联系方式 varchar(100) 否 否 无 6 orders_status 订单状态 varchar(100) 否 否 无 7 shipping_method 邮寄方式 int(10) 否 否 无 订单产品信息关联表(orders_products)结构 序号 字段 描述 类型和长度 主键 可空 默认值 1 opid 自动编号 mediumint(8) 是 否 无 2 orders_id 于orders表关联id int(10) 否 否 无 3 products_id 产品关联id int(10) 否 否 无 4 price 产品价格 decimal(15,2) 否 否 0 5 final_price 最终价格 decimal(15,2) 否 否 0 邮寄方式表(shipping)结构 序号 字段 描述 类型和长度 主键 可空 默认值 1 id 自动编号 mediumint(8) 是 否 无 2 shippingname 费用名称 varchar(200) 否 否 无 3 fee 费用计算公式 varchar(200) 否 否 无
酒店客房管理系统数据库设计文档 1. 引言 3 2. 数据库设计说明 3 2.1 数据库设计原则 3 2.2 数据库ER图设计 3 2.3 数据库设计 4 酒店管理系统数据库设计全文共7页,当前为第1页。 酒店管理系统数据库设计全文共7页,当前为第1页。 文档编写分工说明 负责人 负责内容 王璐 总台预定管理 孙增强 总台接待管理 魏少乾 总台收银管理 杨凯森 房务中心管理 张秉政 会员管理 酒店管理系统数据库设计全文共7页,当前为第2页。 酒店管理系统数据库设计全文共7页,当前为第2页。 引言 这份数据库设计说明书是为酒店客房管理系统编写的。 数据库设计说明 数据库设计原则 数据库设计应该遵循一定的原则,才能够满足系统的需要,发挥数据库系统的最大效率和最高的稳定性,总的来说应遵循以下几个原则 1、完整性原则:数据库的完整性是指数据的正确性和相容性。要防止合法用户使用数据库时向数据库加入不合语义的数据。对输入到数据库中的数据要有审核和约束机制。 2、一致性原则:对信息进行统一、系统的分析与设计,协调好各数据源,做到"数出一门"、"算法统一"、"度量一致"。保证系统数据的一致性和有效性。 3、安全性原则:数据库的安全性是指保护数据,防止非法用户使用数据库或合法用户非法使用数据库造成数据泄露、更改或破坏。 4、可伸缩性原则:数据库结构的设计应充分考虑发展的需要、移植的需要,具有良好的扩展性、伸缩性和适度冗余。 5、规范化:数据库设计应遵循规范化理论,规范化程度过低的关系,可能会存在插入、删除异常、修改复杂、数据冗余等问题,解决的方法就是对关系模式进行分解或合并(规范化),转换成高级范式。 数据库ER图设计 系统的总 E-R 图,显示了从管理员、客房、客房销售的过程,系统的ER图如图所示。 酒店管理系统数据库设计全文共7页,当前为第3页。 酒店管理系统数据库设计全文共7页,当前为第3页。 图1 数据库ER图 数据库设计 基本字典表(StrSystemItem):主要是用来设置一些基础数据,如身份证号,类型、宾客来源、籍惯、城市等,信息量比效大。 表1 基本字典表 列名描述 列名 数据类型 长度 是否为空 基本数据类型 SI_TypeNo varchar 2 No 基本数据编码 SI_ItemNo varchar 3 Yes 项目说明 SI_ItemName varchar 30 Yes 项目英文说明 SI_EItemName varchar 30 Yes 项目值 SI_Value float 8 Yes 项目备注 SI_Remark varchar 300 Yes 房间信息表(RoomInfo):主要是记录设置酒店客房的房号、楼层、房类、房价等,属于基础设置数据。 表2 房间信息表 列名描述 列名 数据类型 长度 是否为空 房号 RI_RoomNo varchar 6 No 站点号码 RI_StationNo varchar 4 Yes 房间类型 RI_RoomTypeNo varchar 2 Yes 楼层 RI_Floor varchar 4 Yes 额定人数 RI_Person smallint 2 Yes 房态横坐标 RI_X1 float 8 Yes 房态纵坐标 RI_Y1 float 8 Yes 房态代码 RI_StateNo varchar 4 Yes 宾客帐号 RI_AcCode varchar 10 Yes 房态修改时间 RI_RoomChangeTime datetime 8 Yes 房态修改工号 RI_RoomChangeUserNo varchar 6 Yes 房间是否已打扫 RI_RoomSecondClear bit 1 Yes 房态清扫时间 RI_RoomClearTime datetime 8 Yes 操作电脑站点定义表(StationExplain):这张表主要是定义客户端操作电脑时对应的站点列表,如果在站点列表中没有定义过的则不能操作系统。 酒店管理系统数据库设计全文共7页,当前为第4页。表1 操作电脑站点定义表 酒店管理系统数据库设计全文共7页,当前为第4页。 列名描述 列名 数据类型 长度 是否为空 站点代码 SE_StationNo varchar 2 No 站点名称 SE_StationName varchar 30 Yes 计算机名字 SE_ComputerName varchar 30 Yes 执行程序 SE_Application varchar 30 Yes 登录时间 SE_LonginTime datetime 8 Yes 登录员工 SE_Operator varchar 6 Yes 房间宽度 SE_RoomWidth int 4 Yes 房间高度 SE_RoomHeigh

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值