数据库模式设计(无约束版本)
以下是简化后的数据库模式设计,移除了所有外键约束,仅保留表结构和字段定义:
1. users 表(用户表)
字段名 |
类型 |
描述 |
id |
VARCHAR(36) |
用户唯一标识 |
username |
VARCHAR(50) |
用户名 |
email |
VARCHAR(100) |
电子邮箱 |
email_verified |
BOOLEAN |
邮箱验证状态 |
password_hash |
VARCHAR(255) |
密码哈希值 |
auth_data |
JSON |
第三方认证数据 |
nickname |
VARCHAR(50) |
用户昵称 |
avatar_url |
VARCHAR(255) |
头像URL |
bio |
TEXT |
个人简介 |
last_active_at |
TIMESTAMP |
最后活跃时间 |
privacy_settings |
JSON |
隐私设置 |
created_at |
TIMESTAMP |
创建时间 |
updated_at |
TIMESTAMP |
更新时间 |
2. diaries 表(日记表)
字段名 |
类型 |
描述 |
id |
VARCHAR(36) |
日记唯一标识 |
user_id |
VARCHAR(36) |
作者ID |
title |
VARCHAR(100) |
日记标题 |
content |
TEXT |
日记内容 |
mood |
VARCHAR(20) |
心情状态 |
tags |
JSON |
标签数组 |
is_public |
BOOLEAN |
是否公开 |
location |
POINT |
地理位置 |
weather |
JSON |
天气数据 |
ai_analysis |
JSON |
AI分析结果 |
created_at |
TIMESTAMP |
创建时间 |
updated_at |
TIMESTAMP |
更新时间 |
3. chat_messages 表(聊天消息表)
字段名 |
类型 |
描述 |
id |
VARCHAR(36) |
消息唯一标识 |
sender_id |
VARCHAR(36) |
发送者ID |
receiver_id |
VARCHAR(36) |
接收者ID |
diary_id |
VARCHAR(36) |
关联日记ID |
content |
TEXT |
消息内容 |
is_read |
BOOLEAN |
是否已读 |
message_type |
VARCHAR(20) |
消息类型 |
attachments |
JSON |
附件列表 |
created_at |
TIMESTAMP |
创建时间 |
updated_at |
TIMESTAMP |
更新时间 |
4. dynamics 表(动态表)
字段名 |
类型 |
描述 |
id |
VARCHAR(36) |
动态唯一标识 |
user_id |
VARCHAR(36) |
创建者ID |
diary_id |
VARCHAR(36) |
引用日记ID |
content |
TEXT |
动态内容 |
images |
JSON |
图片列表 |
location |
POINT |
地理位置 |
tags |
JSON |
标签数组 |
interaction_count |
INTEGER |
互动计数 |
created_at |
TIMESTAMP |
创建时间 |
updated_at |
TIMESTAMP |
更新时间 |
5. interactions 表(互动表)
字段名 |
类型 |
描述 |
id |
VARCHAR(36) |
互动唯一标识 |
user_id |
VARCHAR(36) |
发起用户ID |
target_user_id |
VARCHAR(36) |
目标用户ID |
target_type |
VARCHAR(20) |
目标类型 |
target_id |
VARCHAR(36) |
目标ID |
type |
VARCHAR(20) |
互动类型 |
content |
TEXT |
互动内容 |
status |
VARCHAR(20) |
状态 |
created_at |
TIMESTAMP |
创建时间 |
updated_at |
TIMESTAMP |
更新时间 |
6. thanks_types 表(感恩清单表)
字段名 |
类型 |
描述 |
id |
VARCHAR(36) |
清单唯一标识 |
user_id |
VARCHAR(36) |
创建者ID |
title |
VARCHAR(100) |
清单标题 |
items |
JSON |
清单项数组 |
theme_color |
VARCHAR(20) |
主题颜色 |
is_shared |
BOOLEAN |
是否共享 |
weekly_goal |
INTEGER |
每周目标 |
created_at |
TIMESTAMP |
创建时间 |
updated_at |
TIMESTAMP |
更新时间 |
注:此设计移除了所有外键约束,但仍保留了关联字段(如user_id等),实际应用中需要通过应用程序逻辑来维护数据完整性。