博客 / CMS 数据库表结构设计

大多数博客和 CMS 平台背后的标准内容模型。文章归属于作者和分类,通过关联表携带多个标签,并收集层级评论

表结构(SQL)

sql 复制代码
CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(50) NOT NULL UNIQUE,
  email VARCHAR(254) NOT NULL UNIQUE,
  display_name VARCHAR(120),
  created_at DATETIME NOT NULL
);

CREATE TABLE categories (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100) NOT NULL,
  slug VARCHAR(120) NOT NULL UNIQUE
);

CREATE TABLE posts (
  id INT PRIMARY KEY AUTO_INCREMENT,
  author_id INT NOT NULL,
  category_id INT,
  title VARCHAR(200) NOT NULL,
  slug VARCHAR(220) NOT NULL UNIQUE,
  body TEXT NOT NULL,
  status VARCHAR(20) NOT NULL,
  published_at DATETIME,
  FOREIGN KEY (author_id) REFERENCES users(id),
  FOREIGN KEY (category_id) REFERENCES categories(id)
);

CREATE TABLE tags (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(60) NOT NULL UNIQUE
);

CREATE TABLE post_tags (
  post_id INT NOT NULL,
  tag_id INT NOT NULL,
  PRIMARY KEY (post_id, tag_id),
  FOREIGN KEY (post_id) REFERENCES posts(id),
  FOREIGN KEY (tag_id) REFERENCES tags(id)
);

CREATE TABLE comments (
  id INT PRIMARY KEY AUTO_INCREMENT,
  post_id INT NOT NULL,
  author_id INT,
  parent_id INT,
  body TEXT NOT NULL,
  created_at DATETIME NOT NULL,
  FOREIGN KEY (post_id) REFERENCES posts(id),
  FOREIGN KEY (author_id) REFERENCES users(id),
  FOREIGN KEY (parent_id) REFERENCES comments(id)
);

查看erdiagram在线可视化展示

相关推荐
麻瓜code11 小时前
【Mysql】重新学一遍 SQL 执行顺序
数据库·sql
TELL52118 小时前
帮我生成对应的sql 以及数据库-deepseek提示词
数据库·sql
今天AI了吗21 小时前
从 LLM 到 Agent Skill:把 AI 底层概念串起来
数据库·人工智能·sql·深度学习·神经网络·算法·机器学习
陈卿诺语21 小时前
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
sql·mysql·adb
步行cgn1 天前
MyBatis 动态 SQL 完全指南
sql·tomcat·mybatis
♩♬♪.1 天前
InnoAl SQL助手
数据库·sql
Csvn1 天前
📊 SQL 入门 Day 18:索引原理
后端·sql
DBA小马哥1 天前
关系型数据库核心概念手册:SQL、事务与存储引擎的技术脉络
数据库·sql
灯澜忆梦1 天前
【MySQL12】进阶篇 | SQL优化
数据库·sql·mysql·性能优化
盗理者2 天前
AI Agent 技能分享|SQL 性能诊断与优化
java·sql·spring·skill