Skip to main content

数据库设计

第一次设计自主设计数据库,不敢保证很多场景都没问题,如果你有更好的建议,可以与我交流,提出您宝贵的建议!

设计规范#

以下是我在设计时的一些规范:

  • 设计表面和列名时,采用小写字母 + 下划线的方式进行分割。
  • 不同表之间,作用相同的列名的列类型保持一致。这样可以避免数据库进行隐式转换降低性能,而且可能会造成索引失效。
  • 所有的表,我都采用了 Innodb 引擎,且全部使用统一的字符集。
  • 所有的表和列全部添加了注释,以便于开发和维护。
  • 日期时间数据的存储类型,不采用字符串来存储,更节省空间。用自带的数据类型,还能用日期函数来进行计算和比较,比如 timestampdatatime
  • 任何涉及到资金的数据,全部采用 decimal ,这样在计算时不会丢失精度。
  • 数据库不存放任何图片等二进制文件,可以用 oss 等保存,并配合 cdn 来提高体验。

目前还没进行分库分表,主要是还在开发阶段,并不需要着急实现。

系统名模块名表名(中文)表名(英文)
后台管理系统BMS_权限管理模块AUTH用户表USERBMS_AUTH_USER
用户角色关系表BMS_AUTH_USER_ROLE_RELATION
角色表ROLEBMS_AUTH_ROLE
角色菜单关系表BMS_AUTH_ROLE_MENU_RELATION
菜单表MENUBMS_AUTH_MENU
角色资源关系表BMS_AUTH_ROLE_RESOURCE_RELATION
资源表RESOURCEBMS_AUTH_RESOURCE
权限表PERMISSIONBMS_AUTH_PERMISSION
角色权限关系表BMS_AUTH_ROLE_PERMISSION_RELATION
资源类别管理表RESOURCE_SORTBMS_AUTH_RESOURCE_SORT
权限操作日志表LOGBMS_AUTH_LOG
订单管理模块ORDER订单表BMS_ORDER
订单子表ITEMBMS_ORDER_ITEM
订单日志表LOGBMS_ORDER_LOG
订单售后表RETURNBMS_ORDER_RETURN
订单售后原因表REASONBMS_ORDER_REASON
订单定时任务表TIMETASKBMS_ORDER_TIMETASK
商品管理模块PRODUCT商品表BMS_PRODUCT
商品套餐表SKUBMS_PRODUCT_SKU
商品分类表SORTBMS_PRODUCT_SORT
商品类型表TYPEBMS_PRODUCT_TYPE
商品类型和属性/参数关系表TYPE_VALUE_RELATIONBMS_PRODUCT_TYPE_VALUE_RELATION
商品类型属性表ATTRIBUTEBMS_PRODUCT_ATTRIBUTE
商品类型参数表PARAMETERBMS_PRODUCT_PARAMETER
商品品牌表BRANDBMS_PRODUCT_BRAND
商品操作日志表LOGBMS_PRODUCT_LOG
会员管理模块USER会员用户信息表INFOBMS_USER_INFO
会员用户等级关系表BMS_USER_INFO_GRADE_RELATION
会员等级表GRADEBMS_USER_GRADE
会员等级角色关系表BMS_USER_GRADE_ROLE_RELATION
会员地址管理表ADDRESSBMS_USER_ADDRESS
会员等级规则表GRADE_RULEBMS_USER_GRADE_RULE
会员操作日志表LOGBMS_USER_LOG
营销管理模块MARKET优惠券表COUPONBMS_MARKET_COUPON
广告(轮播图)表ADBMS_MARKET_AD
优惠券使用记录表COUPON_LOGBMS_MARKET_COUPON_LOG
极光币表BITBMS_MARKET_BIT
前台商城系统FMS_购物车模块CAR购物车表FMS_CAR
购物车表子表ITEMFMS_CAR_ITEM
省份表PROVINCEPROVINCE
城市表CITYCITY
区域表AREAAREA