|
@@ -0,0 +1,93 @@
|
|
|
+# 数据库模式设计(无约束版本)
|
|
|
+
|
|
|
+以下是简化后的数据库模式设计,移除了所有外键约束,仅保留表结构和字段定义:
|
|
|
+
|
|
|
+## 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等),实际应用中需要通过应用程序逻辑来维护数据完整性。
|