热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
本提示词专为数据库管理员和开发人员设计,提供专业的数据库表结构规范化分析服务。通过系统化的范式分析、冗余检测和关系优化,能够识别表结构中的设计问题,并给出具体的规范化步骤和改进建议。该提示词适用于数据库设计评审、性能优化、数据一致性保障等多种场景,帮助用户构建高效、可维护的数据库架构。
customers
products
orders
order_items
索引建议(为支持参照与典型连接,不涉及武断性能优化)
通过以上分解,新的数据库结构满足第三范式要求:所有非键属性完全依赖其所在表的主键、且不存在对非键属性的传递依赖;同时保留了订单与主数据的历史正确性与扩展性。
表结构分析总结
规范化问题识别
各级范式符合度评估
具体的规范化步骤
分解目标与关键点
建议的关系模式(BCNF)
PostgreSQL 建表示例(含约束)
-- 1) 部门
CREATE TABLE departments (
dept_id INT PRIMARY KEY,
dept_name VARCHAR(80) NOT NULL,
office_building VARCHAR(40) NOT NULL,
office_floor INT NOT NULL,
CONSTRAINT uq_department_location UNIQUE (office_building, office_floor),
CONSTRAINT ck_office_floor_positive CHECK (office_floor >= 0)
);
-- 2) 员工
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
emp_name VARCHAR(60) NOT NULL,
dept_id INT NOT NULL,
CONSTRAINT fk_employee_department
FOREIGN KEY (dept_id)
REFERENCES departments(dept_id)
ON UPDATE CASCADE
ON DELETE RESTRICT
);
CREATE INDEX idx_employees_dept_id ON employees(dept_id);
-- 3) 部门经理(1:1 的唯一映射)
CREATE TABLE department_managers (
dept_id INT PRIMARY KEY,
manager_id INT NOT NULL UNIQUE,
CONSTRAINT fk_dm_dept
FOREIGN KEY (dept_id)
REFERENCES departments(dept_id)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT fk_dm_manager
FOREIGN KEY (manager_id)
REFERENCES employees(emp_id)
ON UPDATE CASCADE
ON DELETE RESTRICT
);
CREATE INDEX idx_dm_manager_id ON department_managers(manager_id);
说明:
向后兼容的只读视图(可选)
CREATE OR REPLACE VIEW emp_department_assignments_v AS
SELECT
e.emp_id,
e.emp_name,
d.dept_id,
d.dept_name,
dm.manager_id,
m.emp_name AS manager_name,
d.office_building,
d.office_floor
FROM employees e
JOIN departments d ON d.dept_id = e.dept_id
LEFT JOIN department_managers dm ON dm.dept_id = d.dept_id
LEFT JOIN employees m ON m.emp_id = dm.manager_id;
注:原表中的 manager_name 来自经理员工的 emp_name,通过连接获得,避免冗余。
预期改进效果
实施建议和注意事项
-- 1) 同一 dept_id 是否对应多个 (building,floor)
SELECT dept_id, count(DISTINCT office_building, office_floor)
FROM emp_department_assignments
GROUP BY dept_id
HAVING count(DISTINCT office_building, office_floor) > 1;
-- 2) 同一 manager_id 是否映射多个 dept_id
SELECT manager_id, count(DISTINCT dept_id)
FROM emp_department_assignments
GROUP BY manager_id
HAVING count(DISTINCT dept_id) > 1;
-- 3) 同一 (building,floor) 是否映射多个 dept_id
SELECT office_building, office_floor, count(DISTINCT dept_id)
FROM emp_department_assignments
GROUP BY office_building, office_floor
HAVING count(DISTINCT dept_id) > 1;
INSERT INTO departments (dept_id, dept_name, office_building, office_floor)
SELECT DISTINCT dept_id, dept_name, office_building, office_floor
FROM emp_department_assignments;
INSERT INTO employees (emp_id, emp_name, dept_id)
SELECT DISTINCT emp_id, emp_name, dept_id
FROM emp_department_assignments;
INSERT INTO department_managers (dept_id, manager_id)
SELECT DISTINCT dept_id, manager_id
FROM emp_department_assignments;
至此,分解后的三张表均满足 BCNF,且通过唯一性与外键完整性约束,将原先由非超键决定的依赖固化为架构内的可验证规则。
目标:消除部分依赖,将描述“实体自身属性”的字段移至其各自的实体表;保留“实体间关系属性”在关联表中。最终达到 3NF/BCNF。
CREATE TABLE dbo.Students (
student_id INT NOT NULL PRIMARY KEY,
student_name NVARCHAR(60) NOT NULL,
student_phone VARCHAR(30) NULL
);
CREATE TABLE dbo.Courses (
course_id INT NOT NULL PRIMARY KEY,
course_name NVARCHAR(100) NOT NULL
);
CREATE TABLE dbo.Enrollments (
student_id INT NOT NULL,
course_id INT NOT NULL,
term NVARCHAR(20) NOT NULL,
grade CHAR(2) NULL,
CONSTRAINT PK_Enrollments PRIMARY KEY (student_id, course_id),
CONSTRAINT FK_Enrollments_Students FOREIGN KEY (student_id)
REFERENCES dbo.Students(student_id),
CONSTRAINT FK_Enrollments_Courses FOREIGN KEY (course_id)
REFERENCES dbo.Courses(course_id)
);
以“随身数据库规范化专家”的方式,帮助 DBA、架构师与开发者在设计评审、重构与性能治理中,快速诊断表结构问题,给出分步规范化路径与可执行调整清单,评估对性能与维护性的影响,输出标准化报告,降低数据冗余与一致性风险,缩短评审周期并提升查询效率,最终沉淀可复用的数据库设计标准。
用于日常表结构体检,快速定位冗余与异常,制定拆分与关系调整方案,输出变更清单与回滚计划,降低巡检与发布风险。
在建表与迭代前进行规范化校验,自动获得字段依赖与关联建议,避免重复字段和更新异常,减少后期改表与线上故障。
在重构、拆库拆表或微服务改造时,评估模型质量与范式等级,制定分解策略与性能权衡方案,保障演进平滑可控。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
半价获取高级提示词-优惠即将到期