商城平台订单表设计

  • 订单数据是历史数据
  • 订单类型多种类

一套订单表

  • order 订单主表 id, title, uid, sn, order_class, order_time
  • order_ext 订单字段扩展 id, oid, name, val
  • order_status 订单状态 id, oid, status, order_class_id
  • order_details 订单详情 id, oid, product_name, price, amount
  • order_contact_info 订单人联系信息 id, oid, contact, mobile, address, user_contact_id
  • order_pay 订单人支持信息 id, oid, pay_name, pay_account
  • order_log 订单日志记录 id, oid, log_title, log_action, log_time

数据-一般订单会有用户的联系信息-有一个用户单独表来存, 一般可能订单会直接存这个表的ID做关联查询.
但是如果用户编辑或删除这个联系信息, 订单的数据就会发生改变.
订单的数据应该有独立的表来记录这些信息. order_contact_info


order 订单主表关联副表方法
– order-订单主表可用字段来决定调取哪个类型订单的副表.
– order-订单主表应用关联副表类型, 以副表为主 若副表没有数据则不读取.

参考资料

MySQL-订单表如何设计

MySQL表结构及开发数据同步方法

结构同步

方法一: 线上建独立开发库-适合团队
– 每次有表结构变动都提交到指定的人-然后更新到开发库中
– 每次开发前先同步开发库的表结构

方法二: 本地文件夹-适合个人

____________________
|--alterUpdate.sh
|--full
|--20180203
|--|--alter.sql
|--|--lock.mysql
|--20180206
|--|--alter.sql
|___________________

如果有更新结构语句, 侧以当天日期建立sql脚本.
每次开发前先执行alterUpdate.sh脚本, 脚本先判断所有日期的文件夹里面是否都有lock.mysql如果全部有侧直接执行full的sql脚本,
如果有日期文件夹中的没有lock.mysql侧先执行然后生成lcok.mysql再导出数据库全部结构语句, 再覆盖到full中的sql脚本里.

数据同步

开发的时候有些配置数据和分类的数据需要预先存入数据库的.

  • 自动增加不可用来做更新条件判断

场景: 页面需要获取”手机-小米”下的所有产品. 现在在分类增加一条小米的分类数据.

分类表结构: id pid title name, 关键字段 name 字符串-英语组合-不可重复

同步规则: 先判断小米的name是否存在, 再获取手机的id,做为准备插入小米分类数据的pid

github-tag包下载很慢处理方法

eg: https://github.com/mysql/mysql-server/tags 下载MySQL的源码包

方法一: 通过搜索最近的DNS服务器

下载会转到 github-cloud.s3.amazonaws.com 这服务器下载, 站长之家-DNS查询 离我们最近的服务器, 然后把IP粘贴到本机的HOSTS文件中.

52.216.20.16 github-cloud.s3.amazonaws.com

方法二: 把github导出然到国内的git平台中下载.

eg: 利用码云的git平台, 导入后再tag中下载包

相关资料

mysql-社区版下载

[转]Linux 终端显示 Git 当前所在分支

打开文件: vi /home/root/.bashrc 把下面代码粘贴到最末尾然后保存

function git_branch {
  branch="`git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"`"
  if [ "${branch}" != "" ];then
      if [ "${branch}" = "(no branch)" ];then
          branch="(`git rev-parse --short HEAD`...)"
      fi
      echo "->$branch"
  fi
}

export PS1='\[\e[37;40m\][\[\033[01;36m\]\u\[\e[37;40m\]@\[\e[0m\]\h \[\033[01;36m\]\W\[\033[01;32m\]$(git_branch)\[\033[00m\]\[\e[37;40m\]]\[\e[0m\]\$ '

执行命令加载: source ./.bashrc

转自-Linux 终端显示 Git 当前所在分支