MySQL是一种关系型数据库管理系统,用于存储、管理和检索数据。在设计好友关系数据表时,通常需要考虑如何高效地存储和查询用户之间的好友关系。
存储用户的基本信息。
| 字段名 | 类型 | 描述 | |--------------|--------------|----------------| | user_id | INT | 用户ID(主键) | | username | VARCHAR(50) | 用户名 | | email | VARCHAR(100) | 邮箱 | | password | VARCHAR(255) | 密码 | | created_at | TIMESTAMP | 创建时间 | | updated_at | TIMESTAMP | 更新时间 |
存储用户之间的好友关系。
| 字段名 | 类型 | 描述 | |--------------|--------------|----------------| | user_id | INT | 用户ID(外键) | | friend_id | INT | 好友ID(外键) | | status | ENUM('pending', 'accepted') | 关系状态(待定/已接受)| | created_at | TIMESTAMP | 创建时间 | | updated_at | TIMESTAMP | 更新时间 |
SELECT u.user_id, u.username
FROM users u
JOIN friendships f ON u.user_id = f.friend_id
WHERE f.user_id = ? AND f.status = 'accepted';
INSERT INTO friendships (user_id, friend_id, status, created_at, updated_at)
VALUES (?, ?, 'pending', NOW(), NOW());
UPDATE friendships
SET status = 'accepted', updated_at = NOW()
WHERE user_id = ? AND friend_id = ? AND status = 'pending';
DELETE FROM friendships
WHERE user_id = ? AND friend_id = ?;
通过以上设计,可以有效地管理用户之间的好友关系,并提供高效的查询和管理功能。
领取专属 10元无门槛券
手把手带您无忧上云