AI辅助数据库设计评审

头像洪波涌起   创建 于 01月13日 阅读次数 58

数据库设计评审优化

点击上方蓝字关注我们

场景

我们之前已经基于大模型在同一会话中进行过需求评审。在研发设计完成数据模型后,导出数据库设计DDL文件,上传到AI平台进行下一步评审。

实践

groupbuy.txt 文件是我们数据库设计的SQL脚本文件。

提示词1

  • 您是软件工程专家,我刚刚上传了数据库设计DDL文件 {groupbuy.txt},请结合以上需求与原型,对数据库表结构设计进行评审反馈建议,参考:
    • 数据模型评审
      • 实体完整性:检查是否所有实体都已正确定义,并且主键和外键关系正确无误。
      • 属性完整性:确保每个属性的数据类型、长度和约束(如非空、唯一性)都符合业务需求。
      • 关系完整性:检查实体之间的关系是否正确,包括一对一、一对多、多对多关系。

通义千问

这些建议还是比较中肯。

提示词2

  • 您是数据库设计专家,请按我提供的《MySQL数据库设计规范》,结合以上功能列表、需求描述与原型,对文件 {groupbuy.txt} 中的数据库设计再次进行评审:

    MySQL数据库设计规范

    • 命名规则

      • 强制:使用小写,避免空格,使用下划线代替,名称中不应有数字,名称应自我解释且不超过32个字符。
      • 库命名:使用单数,格式为 业务系统名称_子系统名,分库名称格式为 库通配名_编号库通配名_时间
      • 表命名:使用单数,相关模块的表名应体现join关系,如 user 表和 user_login 表。
      • 字段命名:避免使用保留字,避免与表名相同的字段名,外键列必须具有表名及其主键。
    • 表设计

      • 强制:创建表时必须显式指定字符集为 utf8utf8mb4,存储引擎类型为 InnoDB
      • 建议:核心表应有 create_timeupdate_time 字段,所有字段应为 NOT NULL
      • 强制:主键命名为 id,类型为 intbigint,且为 auto_increment
    • 索引设计

      • 强制:主键索引名为 pk_字段名,唯一索引名为 uk_字段名,普通索引名为 idx_字段名
    • 其他

      • 建议:对表里的 blobtext 等大字段进行垂直拆分,反范式设计以减少 join 查询。
      • 强制:中间表名称以 tmp_ 开头,备份表名称以 bak_ 开头。

通义千问

这些建议还是比较细致,实际情况下,我们可以根据公司自己的数据库设计规范,更新提示词中的规则。

ChatGPT4-o

进一步追问数据库设计与需求功能一致性:

  • 您是DBA,请评审上传的数据库设计 {groupbuy.txt} 的关系模型是否符合 拼团分销功能清单.xlsx 文件中的需求,有哪些不足?

如果有PRD或SRS文档,评审结果会更准确。

  • 您是QA,请根据我上传的需求原型设计图片,结合需求功能列表,对数据库设计文件 {groupbuy.txt} 再次评审,反馈技术评审报告。

豆包

提示词

  • 您是软件QA专家,请评审上传的数据库设计 {groupbuy.txt} 的关系模型是否符合 拼团分销功能清单.xlsx 文件,理解原型设计图中的业务需求,判断需求一致性、合理性,有哪些不足,输出数据库设计评审报告。

包含评审报告模板

  • 您是软件QA专家,请评审上传的数据库设计 {groupbuy.txt} 的关系模型是否符合 拼团分销功能清单.xlsx 文件,理解原型设计图中的业务需求,判断需求与设计的一致性、合理性、扩展性,包含具体有哪些不足,输出数据库设计评审报告。

软件数据库设计评审报告

  1. 背景

    • 本报告旨在对软件数据库设计进行评审,确保数据库设计满足系统需求,结构合理,并具备可维护性、可扩展性、可靠性和安全性等特点。
  2. 评审内容

    • 本次评审的数据库设计包括但不限于以下方面:
      • 数据库环境说明
      • 数据库的命名规则
      • 逻辑设计
      • 物理设计
      • 安全性设计
      • 优化
      • 数据库管理与维护说明
  3. 评审标准

    • 评审将依据以下标准进行:
      • 正确性、完整性、一致性
      • 安全性
      • “时-空”效率
  4. 评审结果

    • 经过全面评审,得出以下结论:
      • 数据库环境说明:[具体评审结果]
      • 数据库命名规则:[具体评审结果]
      • 逻辑设计:[具体评审结果]
      • 物理设计:[具体评审结果]
      • 安全性设计:[具体评审结果]
      • 优化:[具体评审结果]
      • 数据库管理与维护说明:[具体评审结果]
  5. 评审意见和建议

    • [具体建议和意见]
  6. 结论

    • [综合评审结果,得出的结论]

自动化评审

基本思路:

  1. CI工具拉取GIT中的PDM文件。
  2. 生成SQL文件到临时目录。
  3. 提交 git commit
  4. 发起 merge request
  5. 可提前准备好需求文档相关,大模型对 merge requestdiff 进行 review
  6. 产出 review 结果到 merge request 评论中。
  7. 评审人辅助决策是否通过 pass

可以参考的数据库设计规范

总结

提高评审效率:

  • AI能够自动提取关键信息,快速生成评审报告,大大缩短了评审周期。
  • AI还能通过实时监测和智能化建议,帮助评审人员更快地发现问题并作出决策。

增强评审准确性:

  • AI基于大数据和机器学习算法,能够更准确地分析数据库设计的优缺点,提供更有针对性的建议。
  • AI还能通过比对和分析历史数据,发现潜在的缺陷和风险,提高评审的准确性。

保障数据安全与隐私:

  • AI通过对异常数据的分析和检测,可以及时发现潜在的安全隐患,提高数据的安全性。
  • AI还能通过数据加密、访问控制等技术手段,保障数据的隐私性。

推动数据库设计的创新与发展:

  • AI的引入为数据库设计评审带来了新的思路和方法,推动了数据库设计的创新与发展。
  • AI还能通过不断学习和优化,提高数据库设计的水平和质量。

基于AI辅助数据库设计评审的场景广泛且意义重大,它不仅提高了评审效率和准确性,还保障了数据的安全与隐私,推动了数据库设计的创新与发展。
end

点赞
收藏
分享
打赏
精彩评论
评论
全部评论
加载失败