1. 实体及其属性
-
用户(User)
- user_id (INT, 主键, 自动增长)
- username (VARCHAR(255), 唯一)
- password (VARCHAR(255))
- phone (VARCHAR(15), 唯一)
- registration_time (TIMESTAMP, 默认当前时间)
- user_type (ENUM(‘普通用户’, ‘管理员’), 默认’普通用户’)
-
文章(Article)
- article_id (INT, 主键, 自动增长)
- title (VARCHAR(255), 唯一)
- content (TEXT)
- publish_time (TIMESTAMP, 默认当前时间)
- likes (INT, 默认0)
- comments_count (INT, 默认0)
- category_id (INT, 外键, 关联栏目表)
-
栏目(Category)
- category_id (INT, 主键, 自动增长)
- name (VARCHAR(255), 唯一)
-
评论(Comment)
- comment_id (INT, 主键, 自动增长)
- article_id (INT, 外键, 关联文章表)
- user_id (INT, 外键, 关联用户表)
- content (TEXT)
- comment_time (TIMESTAMP, 默认当前时间)
-
管理员(Admin)
- admin_id (INT, 主键, 自动增长)
- admin_username (VARCHAR(255), 唯一)
- admin_password (VARCHAR(255))
2. 实体关系
- 用户(User) 与 评论(Comment):一位用户可以发表多条评论(1对多关系)。
- 文章(Article) 与 评论(Comment):一篇文章可以有多条评论(1对多关系)。
- 文章(Article) 与 栏目(Category):每篇文章属于一个栏目(多对1关系)。
- 栏目(Category) 与 文章(Article):一个栏目可以包含多篇文章(1对多关系)。
- 管理员(Admin):管理员管理用户、文章和评论。
3. E-R图描述
以下是E-R图的文本描述,你可以使用图形工具将其绘制出来:
[用户] --< 发布 >-- [评论] --< 评论于 >-- [文章] --< 属于 >-- [栏目]
|
|
[管理员]
4. 数据库表设计 SQL 语句
用户表
CREATE TABLE users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
phone VARCHAR(15) UNIQUE,
registration_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
user_type ENUM('普通用户', '管理员') DEFAULT '普通用户'
);
文章表
CREATE TABLE articles (
article_id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL UNIQUE,
content TEXT NOT NULL,
publish_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
likes INT DEFAULT 0,
comments_count INT DEFAULT 0,
category_id INT,
FOREIGN KEY (category_id) REFERENCES categories(category_id)
);
栏目表
CREATE TABLE categories (
category_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL UNIQUE
);
评论表
CREATE TABLE comments (
comment_id INT PRIMARY KEY AUTO_INCREMENT,
article_id INT,
user_id INT,
content TEXT NOT NULL,
comment_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (article_id) REFERENCES articles(article_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
管理员表
CREATE TABLE admins (
admin_id INT PRIMARY KEY AUTO_INCREMENT,
admin_username VARCHAR(255) NOT NULL UNIQUE,
admin_password VARCHAR(255) NOT NULL
);
5. 功能模块简述
-
用户功能
- 注册:输入用户名、密码、手机号等信息,完成注册。
- 登录:输入用户名和密码,进入主界面。
- 查询文章:在主界面通过搜索框输入文章标题查询相应文章。
- 点赞、评论、收藏文章。
-
管理员功能
- 登录管理端:输入管理员信息。
- 统计分析:查看文章数量、用户数量和浏览数。
- 用户管理:查询、删除用户信息。
- 栏目管理:对栏目进行增删改查。
- 文章管理:增删改查文章信息。
- 评论管理:查看、删除评论。