超超哥AI云计算超哥讲AI 出品

社群入口

AI 超哥 Codex 副业群

扫码加入群聊,一起交流 AI、Codex 与副业实践。

原图注明二维码于10月20日前有效;若提示过期或无法入群,请等待更新二维码。

AI 超哥 Codex 副业群入群二维码在新窗口打开原图

数据库基础与客户数据理解

SQL、业务数据建模与数据库实践#FDE#第五阶段#SQL、业务数据建模与数据库实践#数据库基础与客户数据理解约 1301 字 · 4 分钟阅读
追问显示
点击任意追问卡片可收起 / 展开

本阶段学习说明

培养方向: 客户现场的软件实现、系统集成与 AI 应用交付。
阶段定位: 能读懂客户业务数据,编写正确 SQL,设计必要约束和事务,完成受控查询、性能检查与变更验证。
适用环境: MySQL 8.x 与 InnoDB;可选 SQLAlchemy 或一种已学 ORM。使用其他数据库时说明语法、隔离与计划差异,不要求专职 DBA 的全部操作。
统一场景: 接入客户工单数据,生成报表,并在自有测试库实现领取、事件记录和数据修复;真实客户库默认按确认的只读范围接入。

课堂表结构约定: tenants(id, name) 表示客户空间;customers(id, tenant_id, external_id, name) 表示业务客户;tickets(id, tenant_id, customer_id, external_id, status, priority, assignee_id, created_at, updated_at, closed_at) 表示工单;ticket_events(id, tenant_id, ticket_id, event_type, occurred_at) 表示事件;tags(id, tenant_id, name) 与 ticket_tags(tenant_id, ticket_id, tag_id) 表示标签。基础练习约定 id 为本表全局唯一主键,外部编号仅在约定来源及客户空间内唯一。关联对象必须属于同一空间;约束如何落地也是考题,不默认上述字段已经具有全部保护。时间采用约定的 UTC 表示,NULL 和状态含义需按业务规则核对。

题库结构: 100 道题及追问,分十组,附评分与实操建议;提供题目,不包含参考答案。后续数据同步和多租户安全章节再展开专门设计。

答题约定: 先说明结果粒度、过滤范围、关联基数和空值规则,再写 SQL 或设计表。区分只读、读写和结构变更权限;任何实际写入、锁竞争与修复演练均在隔离测试库完成。

关系数据库在客户系统中通常保存什么信息?

追问 当前状态、业务事实和事件记录有何区别?哪些内容不能只从表名推断?

库、表、行、列与主键分别表示什么?

追问 主键如何标识一条记录?业务编号为什么不一定在全部客户间唯一?

首次接入数据库,应向客户确认哪些条件?

追问 环境、库表、身份、权限和查询窗口如何核对?是否允许导出与保存结果?

怎样从现有表结构理解业务关系?

追问 字段类型、约束、样例和业务说明如何配合?同名字段是否一定表示同一概念?

当前状态表与事件表各能回答什么问题?

追问 已关闭状态能否说明所有历史流转?反复打开和关闭应从哪里查?

NULL、空字符串与零有什么区别?

追问 未知、无值和实际为零怎样映射?报表过滤和计数会受到什么影响?

整数、字符、时间、定点数与 JSON 怎样选择?

追问 范围、精度、查询与约束如何考虑?把全部字段存成字符串会有什么后果?

字符集和排序规则会怎样影响数据接入?

追问 多语言、大小写、唯一性和排序如何变化?系统之间比较外部编号需确认什么?

数据库时间字段与业务时间有什么区别?

追问 发生、接收、创建和修改时间各用于什么?跨系统时区与单位怎样核对?

怎样验证样例数据是否代表真实业务?

追问 历史跨度、状态分布与异常数据如何检查?少量成功样例会漏掉什么?