表名: UserInput
字段:
objectId (默认字段) createdAt (默认字段) userName (用户姓名) contactInfo (联系方式) brandName (品牌名称) brandType (品牌类型) targetMarket (目标市场) competitorsInfo (竞争对手信息) specificNeeds (其他特定需求)
表名: Report
字段:
objectId (默认字段) createdAt (默认字段) userInput (Pointer) - 关联到用户输入表 reportContent (报告内容) reportDate (报告生成日期)
表名: Competitor
字段:
objectId (默认字段) createdAt (默认字段) userInput (Pointer) - 关联到用户输入表 competitorName (竞争对手名称) competitorStrengths (竞争对手优势) competitorWeaknesses (竞争对手劣势)
UserInput 表: 存储用户的基本信息和需求。 Report 表: 存储生成的品牌策划报告,并通过外键关联到 UserInput 表。 Competitor 表: 存储竞争对手的信息,同样与 UserInput 表关联。
@startuml
class UserInput {
+objectId: String
+createdAt: Date
+userName: String
+contactInfo: String
+brandName: String
+brandType: String
+targetMarket: String
+competitorsInfo: String
+specificNeeds: String
}
class Report {
+objectId: String
+createdAt: Date
+userInput: Pointer
+reportContent: String
+reportDate: Date
}
class Competitor {
+objectId: String
+createdAt: Date
+userInput: Pointer
+competitorName: String
+competitorStrengths: String
+competitorWeaknesses: String
}
UserInput "1" -- "0..*" Competitor : has >
UserInput "1" -- "0..1" Report : generates >
@enduml
收集用户信息:
提供一个表单让用户填写姓名、联系方式、品牌名称、品牌类型、目标市场、竞争对手信息和其他特定需求。 在用户提交表单时,验证输入数据的完整性和有效性(例如,检查联系方式格式、品牌名称是否为空等)。 保存用户输入:
将用户输入的数据存储到 UserInput 表中,并生成一个唯一的 objectId。
收集竞争对手信息:
在用户输入表单中,允许用户添加多个竞争对手的信息(如名称、优势、劣势)。 使用动态表单元素(如添加按钮)来允许用户输入多个竞争对手。 保存竞争对手信息:
当用户提交信息时,遍历竞争对手列表,将每个竞争对手的信息存储到 Competitor 表中,并将其与相应的 UserInput 记录关联。
生成报告:
在用户提交信息后,触发一个报告生成的过程。 根据用户的输入和需求,使用预定义的模板生成报告内容。可以根据品牌类型、目标市场和竞争对手信息来调整报告的内容和格式。 保存报告:
将生成的报告内容存储到 Report 表中,并将其与相应的 UserInput 记录关联。
[
{
"UserInput": {
"objectId": "1",
"name": "张三",
"contact": "13800138000",
"brandName": "未来科技",
"brandType": "科技",
"targetMarket": "中国",
"competitors": [
{
"name": "竞争者A",
"strengths": "强大的市场份额",
"weaknesses": "创新能力不足"
},
{
"name": "竞争者B",
"strengths": "丰富的产品线",
"weaknesses": "价格较高"
}
],
"specificNeeds": "需要市场分析和品牌定位建议"
},
"Competitor": [
{
"competitorId": "1",
"userInputId": "1",
"name": "竞争者A",
"strengths": "强大的市场份额",
"weaknesses": "创新能力不足"
},
{
"competitorId": "2",
"userInputId": "1",
"name": "竞争者B",
"strengths": "丰富的产品线",
"weaknesses": "价格较高"
}
],
"Report": {
"reportId": "1",
"userInputId": "1",
"content": "根据用户输入,生成的市场分析报告..."
}
},
{
"UserInput": {
"objectId": "2",
"name": "李四",
"contact": "13900139000",
"brandName": "绿色生活",
"brandType": "环保",
"targetMarket": "国际",
"competitors": [
{
"name": "竞争者C",
"strengths": "全球知名品牌",
"weaknesses": "市场反应慢"
}
],
"specificNeeds": "希望获得国际市场的进入策略"
},
"Competitor": [
{
"competitorId": "3",
"userInputId": "2",
"name": "竞争者C",
"strengths": "全球知名品牌",
"weaknesses": "市场反应慢"
}
],
"Report": {
"reportId": "2",
"userInputId": "2",
"content": "根据用户输入,生成的国际市场进入策略报告..."
}
}
]
最后,报告生成器确认报告存储成功,并将结果返回给表单,表单再将报告链接展示给用户。
@startuml
actor User
participant "Form" as Form
participant "Database" as DB
participant "Report Generator" as ReportGen
User -> Form: 填写表单
Form -> User: 提交数据
User -> Form: 提交数据
Form -> DB: 存储用户数据
DB -> Form: 确认存储成功
Form -> ReportGen: 生成报告请求
ReportGen -> DB: 获取用户数据
DB -> ReportGen: 返回用户数据
ReportGen -> ReportGen: 生成报告内容
ReportGen -> DB: 存储生成的报告
DB -> ReportGen: 确认报告存储成功
ReportGen -> Form: 返回报告生成成功
Form -> User: 显示报告链接
@enduml