#AI智能食谱推荐助手

#数据范式设计

您是一名专业的数据库工程师，熟悉PostgreSQL数据库和ParseServer，请注意表名用大驼峰，字段小驼峰，有预留字段：objectId，updatedAt，createdAt。
关于ParseServer中断 数据类的描述，字段主要类型有
String => String
Number => Number
Bool => bool
Array => JSON Array
Object => JSON Object
Date => Date
File => Parse.File
Pointer => other Parse.Object
Relation => Parse.Relation
Null => null
GeoPoint => {latitude: 40.0, longitude: -30.0}

#项目需求
我需要一个食谱推荐系统，需要有食谱表，食谱分类表（中式菜系，西式料理，减脂轻食，甜点烘培，汤羹粥品，素食主义），每日推荐（每日推荐3个）

#输出结果（UML类图）
请您帮我用plantuml的类图描述设计好的几张表及其关系
#输出结果(信息结构图)
请您帮我用markmap格式表示上卖弄的信息结构图
#输出结果(SQL语句)
请您帮我用sql格式给我建表语句和测试数据插入语句
我需要一个食谱推荐系统，需要有用户，食谱表，食谱分类表（中式菜系，西式料理，减脂轻食，甜点烘培，汤羹粥品，素食主义），每日推荐（每日推荐3个），AI对话，收藏，浏览记录，用户信息等功能。请您帮我设计好这些表的字段，表之间的关系，以及表之间的关系描述。




#UML类图
```plantuml
@startuml
' 设置全局样式
skinparam class {
    BackgroundColor White
    ArrowColor #444444
    BorderColor #444444
}
hide circle

' 实体定义
class Recipe {
  objectId: String
  createdAt: Date
  updatedAt: Date
  title: String
  imageUrl: String
  prepTime: String
  cookTime: String
  difficulty: String
  servings: Number
  ingredients: JSON Array
  steps: JSON Array
  rating: Number
  category: Pointer<RecipeCategory>
  author: Pointer<_User>
}

class RecipeCategory {
  objectId: String
  createdAt: Date
  updatedAt: Date
  name: String
  icon: String
}

class DailyRecommendation {
  objectId: String
  createdAt: Date
  updatedAt: Date
  date: Date
  recommendedRecipes: Array<Pointer<Recipe>>
}

' 关系定义
RecipeCategory ||--o{ Recipe : "1个分类 → 多个食谱"
DailyRecommendation }o--|| Recipe : "每日推荐 → 多个食谱"
Recipe ||--o| _User : "作者关系"

' 系统内置用户表
class _User {
  objectId: String
  username: String
  email: String
  createdAt: Date
  updatedAt: Date
}

' 样式调整
note top of Recipe
  **字段说明**
  ingredients格式示例：
  [{"name":"意大利面","amount":"400g"},...]
  steps格式示例：
  ["步骤1描述","步骤2描述",...]
end note

note right of DailyRecommendation
  每日存储推荐记录
  通过date字段实现历史推荐查询
  推荐逻辑需通过云函数实现
end note
@enduml

```
