数据库设计小技巧
对于常规的表结构推荐预留以下字段:
create_uid: 创建后台管理员IDupdate_uid: 更新数据管理员IDdelete_uid: 删除数据管理员IDcreate_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
这几个字段在功能表上推荐先追加上, 因为本身都是数值类型所以相对占用也不是那么大.