从0开始搭建后台管理系统,这是No8。上一篇我们讲到了:一个后台系统应该包含哪些功能?。这一节,结合这些功能,我们来说说一个数据库表应该包含哪些字段?
在数据库表设计中,包含 id 、 tenant_id 、 create_time 、 update_time 、 creater 、 updater 、 delete_time 、 deleted、version 这些字段是企业级系统的通用最佳实践 ,它们共同构成了表的元数据管理体系,为系统的 稳定性、安全性、可追溯性和可扩展性提供核心支持。以下是每个字段的具体必要性分析:
1. id(主键ID)
核心作用:唯一标识表中每一条记录
- 数据唯一性保障 :确保每条记录都有全局唯一的标识符,避免数据冲突或重复。
- 关联查询基础 :是表与表之间建立外键关联的必要条件(如用户表的 id 作为订单表的 user_id 外键)。
- 操作效率提升 :使用自增ID、雪花ID、UUID等策略,可优化数据库索引结构,加速 SELECT 、 UPDATE 、 DELETE 等操作。
2. tenant_id(租户标识)
核心作用:支持多租户架构,实现数据逻辑隔离
- 多租户数据隔离 :在SaaS(软件即服务)或集团化系统中,确保不同租户(企业/部门)的数据相互独立,防止越权访问(如A公司用户无法查询B公司数据)。
- 业务扩展性 :便于系统从单租户平滑升级为多租户架构,满足业务增长需求。
- 运维便利性 :支持按租户维度进行数据备份、清理、统计等操作(如”仅备份租户A的数据”)。
3. create_time(创建时间)& update_time(更新时间)
核心作用:记录数据生命周期,支持审计与时序分析
- 数据时间线追踪 :清晰记录数据的创建和最后修改时间,便于还原业务操作流程(如”某订单在何时创建,何时修改状态”)。
- 问题排查定位 :当数据异常时,可通过时间戳快速缩小问题范围(如”异常数据集中在今日14:00-15:00创建”)。
- 业务数据分析 :支持基于时间维度的统计(如”今日新增用户数”、”近7天订单修改频率”)。
- 自动化维护 :便于实现数据自动清理(如删除超过90天的临时数据)、缓存失效等机制。
4. creater(创建人)& updater(更新人)
核心作用:记录操作主体,支持责任追溯
- 操作责任明确 :通过记录创建者和最后修改者的ID,可直接定位数据操作的责任人(如”谁创建了这条错误的配置项”)。
- 权限控制辅助 :结合用户权限体系,可实现精细化控制(如”仅创建者可修改自身数据”)。
- 审计合规要求 :满足金融、医疗等行业的审计合规需求(如SOX法案要求记录关键操作的执行主体)。
5. deleted(删除状态)& delete_time(删除时间)
核心作用:实现软删除,保障数据安全与可恢复性
- 数据安全保护 :避免物理删除数据(直接从磁盘删除),防止误删导致的不可逆损失。
- 业务逻辑隔离 :通过 deleted 字段(如0=未删除,1=已删除)标记数据状态,查询时过滤已删除记录,不影响正常业务。
- 数据可恢复性 :当误删发生时,可通过 delete_time 和 deleted 字段快速恢复数据。
- 审计完整性 :保留删除操作的时间和状态记录,确保操作轨迹的完整性。
6. version字段
在数据库表设计中, version 字段是一种实现 乐观锁 (Optimistic Locking)机制的核心技术,主要用于解决并发数据更新时的一致性问题。当多个事务同时读取并尝试更新同一行数据时, version 字段用于 检测更新冲突 ,确保数据的最终一致性。
为什么这些字段是”标配”?
这些字段并非业务字段,而是 元数据字段 ,它们的价值在于:
- 通用性强 :几乎适用于所有业务表(如用户、订单、配置、日志等),是系统的”基础设施”。
- 支撑核心功能 :为后台管理系统的 日志管理 (记录操作历史)、 监控管理 (追踪数据变化)、 权限管理 (数据隔离)等模块提供必要数据。
- 降低维护成本 :统一的元数据体系减少了重复设计,便于开发团队理解和维护代码。
- 提升系统韧性 :软删除、时间戳等机制增强了系统应对误操作、数据异常的能力。
实际应用示例
以一个”用户表”为例,这些字段的组合使用:
- 通过 id 唯一标识用户, tenant_id 区分不同企业的用户;
- 通过 create_time 统计”月度新增用户”, update_time 分析用户活跃周期;
- 通过 creater 追踪”谁创建了这个用户”, updater 记录”谁修改了用户权限”;
- 通过 deleted=1 和 delete_time 实现用户”注销但可恢复”的功能,避免物理删除导致的用户数据永久丢失;
- 通过version实现乐观锁,记录数据更新次数。
这些字段是数据库表设计的”最小必要元数据集合”,它们共同构建了系统的数据治理基础,是企业级应用稳定性、安全性和可维护性的重要保障。
LoveCTO

