MeteorCat / 数据库设计小技巧

Created Thu, 18 Apr 2024 18:14:13 +0800 Modified Wed, 29 Oct 2025 23:24:53 +0800
373 Words

数据库设计小技巧

对于常规的表结构推荐预留以下字段:

  • create_uid: 创建后台管理员ID
  • update_uid: 更新数据管理员ID
  • delete_uid: 删除数据管理员ID
  • create_time: 数据创建时间
  • update_time: 数据更新时间
  • delete_time: 删除删除时间

这几个是设计表当中最好追加的字段, 因为常常需要溯源和软删除处理, 这里举几个常用样例:

  • 需求A: 用户创建的数据要求自己进行可见和修改, 用户只能修改自己所有的那部分数据.
  • 需求B: 数据只允许被 软删除 而不能直接 硬删除, 会导致丢失关联的数据库数据.
  • 需求C: 订单数据表需要按照最后玩家支付时间倒叙排序查看( 订单流程分为: 创建订单, 等待回调, 支付完成, 发货完成 )

这里目前工作当中最常见的场景, 里面都需要充分调度到内部的条件数据:

# 只允许查询|修改到自己创建的数据
SELECT *
FROM `order_info`
WHERE `create_uid` = owner_uid

# 去除查询出来的已经被标识删除的数据
SELECT *
FROM `order_info`
WHERE `delete_uid` <= 0

这几个字段在功能表上推荐先追加上, 因为本身都是数值类型所以相对占用也不是那么大.