博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。
一、研究目的
随着共享经济与互联网技术的快速发展,二手车交易市场呈现出规模不断扩大、交易频次日益增加的趋势。然而,传统二手车交易模式依赖人工甄别与口碑传播,存在信息不对称、价格波动大、用户满意度低等问题。与此同时,消费者在浏览海量车辆信息时往往面临筛选困难与决策疲劳,导致购买意愿下降。为此,构建一套高效、精准的二手车推荐系统已成为提升交易效率与用户体验的迫切需求。
本研究聚焦于基于Python技术栈的二手车推荐系统设计与实现,旨在通过数据驱动的方法解决上述痛点。首先,利用Python丰富的数据处理与机器学习库,构建统一的数据采集、清洗与特征工程框架,以保证模型输入的质量与可解释性。其次,采用协同过滤、内容过滤以及混合推荐算法相结合的策略,以兼顾用户兴趣与车辆属性的多维度匹配。再次,系统将引入实时反馈机制,使得推荐模型能够在用户交互过程中持续学习与优化,从而提升个性化服务的精准度。
研究的核心目标在于实现一套可扩展、易维护且具备高并发处理能力的二手车推荐平台。通过对比实验验证,本系统将显著降低用户搜索成本、提高成交转化率,并为平台运营方提供基于数据的定价与营销决策支持。与此同时,系统架构采用Python微服务模式,便于后期功能迭代与技术升级,满足快速变化的市场需求。
在学术层面,本研究将填补二手车推荐领域中Python生态下算法融合与系统集成的空白,为相关研究提供可复现的实验框架与数据集。通过公开的代码与实验结果,促进社区共享与技术传播,进一步推动二手车电子商务的智能化发展。最终,本论文旨在为学术界和工业界提供一套完整、可落地的技术方案,以提升二手车交易效率、降低信息不对称风险,并为用户创造更优质的购车体验。
二、研究意义
本研究在二手车交易领域具有重要的理论与实践意义。 从理论层面看,构建基于Python的推荐系统为传统信息检索与协同过滤方法提供了新的融合视角,进一步丰富了推荐算法的研究范式。 通过将Python生态中的数据处理库、机器学习框架与深度学习工具有机结合,本工作展示了在数据规模大、特征维度高的二手车场景中实现高效模型训练与在线推理的可行性。 此外,系统设计中引入的混合推荐策略兼顾了用户行为序列与车辆属性相似度,为多源信息融合提供了可复制的实验平台,具有较强的推广价值。 在实践层面,本系统能够显著降低消费者在海量车辆信息中的搜索成本,提升匹配精度,从而提高成交转化率与用户满意度。 对于二手车经销商而言,推荐系统可精准定位潜在买家,优化库存结构与定价策略,进而提升运营效率与利润空间。 同时,系统的实时反馈机制使得业务决策能够基于最新用户行为数据进行动态调整,为企业提供了以数据为驱动的营销手段。 该研究还为学术界提供了一套完整、可复现的实验框架与公开数据集,便于后续研究者在相同环境下对算法进行对比与改进。 在技术层面,采用Python微服务架构使得系统具备良好的可扩展性与容错性,满足未来业务增长与功能迭代的需求。 因此,本研究不仅在理论上推动了推荐系统与汽车电子商务的交叉融合,也在实践中为二手车交易平台提供了可落地、可持续发展的技术方案。 综上所述,基于Python的二手车推荐系统设计与实现为解决信息不对称、提升用户体验以及优化商业运营提供了系统化的技术路径,具有显著的学术价值与社会经济意义。
三、国内外研究现状
在全球范围内,二手车推荐系统的研究已从传统的协同过滤方法逐步演进为融合多源信息、深度学习与强化学习的复合模型。早期工作主要集中于基于用户历史交易记录与车辆属性的矩阵分解技术,通过求解隐因子实现用户与车辆之间的匹配。随着大数据技术的发展,研究者开始引入内容过滤策略,利用车辆品牌、型号、年限、里程数等结构化特征构建物品向量,并将其与用户兴趣向量进行相似度计算,从而提升冷启动问题的处理效果。近年来,深度学习方法在推荐领域的广泛应用催生了神经协同过滤(NCF)、自编码器、卷积神经网络(CNN)以及循环神经网络(RNN)等模型。尤其在二手车场景中,研究者利用CNN对车辆图片进行特征提取,再与结构化属性结合,形成多模态推荐框架;RNN与Transformer则被用于捕捉用户行为序列的时序依赖,从而实现更精准的个性化预测。与此同时,图神经网络(GNN)在处理车辆知识图谱、车主社交网络以及车辆属性层级关系方面表现出显著优势,能够进一步提升推荐系统的可解释性与泛化能力。
在国外研究中,Carvana、AutoTrader、Cars.com等平台的学术合作项目已公开多项数据集与算法实现。例如,Carvana公开的图像数据集被用于车辆识别与属性预测任务;AutoTrader与MIT合作开展了基于用户搜索日志的强化学习推荐实验,证明动态策略可显著提高成交率。欧洲市场的AutoScout24则通过构建多语言知识图谱,将车辆信息与地区法规、税费等因素关联,形成跨国推荐模型。学术界在这些平台的基础上开展了多项跨域迁移学习、因果推断与公平性评估研究,推动了二手车推荐系统从纯粹的点击率提升向整体交易价值优化的转变。
国内研究则更侧重于结合中国市场特有的数据来源与用户行为模式。以360che、Autohome为代表的大型汽车网站提供了海量车辆信息与用户评论文本,为基于文本情感分析与知识图谱构建的推荐系统提供了实验平台。多篇论文提出利用BERT等预训练语言模型对车主评价进行情感分级,并将情感得分作为用户兴趣的补充特征,从而缓解传统协同过滤中冷启动与稀疏性问题。与此同时,国内高校与企业合作开展了基于车辆图片与结构化属性的多模态深度学习模型,实验结果显示相较于单一属性模型提升了15%~20%的预测准确率。针对中国二手车交易的地域差异与价格波动特征,一些研究引入了时序卷积网络(TCN)与注意力机制,对不同地区的价格趋势进行建模,进一步提高了推荐系统在多区域部署中的鲁棒性。
在算法创新方面,国内外学者均关注推荐系统的可解释性与公平性。通过构建知识图谱与因果推断模型,一些工作能够为用户提供“为什么推荐此车”的解释,从而增强用户信任度;同时,基于公平性约束的优化框架被用于平衡不同品牌、价格区间车辆的曝光机会,避免系统偏向热门车型。强化学习在动态推荐中的应用也逐渐成熟,一些研究将成交概率、价格弹性等业务指标作为奖励函数,实现了在线策略优化。
综上所述,国内外二手车推荐系统研究已形成从传统协同过滤到深度多模态、图神经网络与强化学习的多层次技术体系。主要研究方向集中在算法性能提升、冷启动解决、可解释性与公平性保障以及跨域迁移与时序建模等方面。通过对国内外研究现状的梳理,可为后续基于Python实现的二手车推荐系统提供技术借鉴与创新思路。
四、预期达到目标及解决的关键问题
预期目标主要集中在构建一套基于Python技术栈的二手车推荐系统,该系统能够实现高精度的个性化匹配、低延迟的实时推理以及可扩展的架构设计。 首先,系统需通过多模态特征融合,将车辆结构化属性、图片视觉特征以及用户评论文本共同纳入模型输入,从而提升推荐准确率并缓解冷启动问题。 其次,算法层面应兼顾协同过滤与深度学习方法,利用矩阵分解、神经协同过滤以及图神经网络相结合的混合策略,以实现对用户兴趣与车辆属性的全方位建模。 再者,系统需具备可解释性功能,通过知识图谱或因果推断机制为用户提供“推荐原因”,从而增强信任度并满足监管合规要求。 最后,架构层面应采用Python微服务模式,支持水平扩展与容错处理,以满足高并发访问和持续迭代的业务需求。
关键问题主要包括数据异构性、特征工程复杂性、模型训练与推理效率以及隐私安全等方面。 在数据层面,二手车信息来源多样化,包含结构化数据库、非结构化文本以及高分辨率图片,如何统一清洗、标注并进行特征抽取是首要挑战。 特征工程方面,需要设计有效的视觉编码器与文本嵌入模型,并通过多模态融合策略实现信息互补,同时保持模型可解释性。 在算法层面,混合推荐模型往往参数量大、训练时间长,如何在保证精度的前提下降低计算成本、加速收敛成为关键技术难点。 推理层面则需解决实时性与吞吐量的平衡,尤其在高并发场景下保持毫秒级响应时间。
隐私安全与合规性也是不可忽视的问题。 用户行为日志与车辆交易记录涉及个人敏感信息,如何在保证推荐效果的同时遵循数据最小化原则、实现差分隐私或联邦学习等技术,是系统设计中必须解决的核心问题。 同时,平台需满足不同地区的监管要求,确保推荐算法不产生歧视性或不公平性。
综上所述,本研究的预期目标是构建一套兼具高精度、低延迟、可解释与可扩展特性的二手车推荐系统,而关键问题则围绕数据异构处理、特征融合设计、模型效率优化以及隐私合规展开。 通过系统性地解决上述问题,期望为二手车交易平台提供技术支撑,提升用户体验与业务价值。
五、研究内容
本研究以构建一套基于Python技术栈的二手车推荐系统为核心目标,整体研究内容可分为数据采集与预处理、特征工程与多模态融合、混合推荐模型设计与训练、系统架构实现与部署以及评估与优化四大模块。
在数据采集与预处理阶段,首先从国内外主流二手车交易平台获取结构化车辆信息,包括品牌、型号、年款、里程数、车况评分等属性;随后通过爬虫技术抓取车辆图片与用户评论文本,并利用OCR技术提取车牌与标识信息;接着对采集到的原始数据进行清洗,处理缺失值、异常值与重复记录,并统一字段命名与单位。为保证后续特征工程的可行性,还需对文本进行分词、停用词过滤以及情感极性标注,对图片采用标准化尺寸缩放与色彩归一化。
特征工程与多模态融合阶段,首先针对结构化属性构建数值型与类别型特征向量;其次利用预训练的视觉模型(如ResNet、EfficientNet)提取车辆图片的深度特征,并通过全连接层降维;再次采用BERT或RoBERTa等语言模型对用户评论进行语义编码,得到文本嵌入向量;随后将上述三类特征通过拼接或注意力机制进行融合,形成统一的车辆表示向量。为解决冷启动问题,还会引入知识图谱构建车辆属性层级关系,并利用图嵌入技术生成相似度矩阵。
混合推荐模型设计与训练阶段,首先采用矩阵分解方法(如SVD、ALS)对用户-车辆交互矩阵进行低秩分解,得到隐因子表示;随后构建神经协同过滤网络,将用户与车辆的隐因子作为输入,通过多层感知机学习非线性关系;再进一步加入图神经网络,对车辆属性图进行消息传递,捕捉邻接属性的相似性;最后将三种模型的输出通过加权融合或堆叠式集成得到最终评分。模型训练过程中采用交叉熵或BPR损失函数,并通过Adam优化器进行梯度更新;为提升泛化能力,还会使用Dropout、L2正则化以及早停策略。
系统架构实现与部署阶段,基于Python的微服务框架(如FastAPI、Django)搭建RESTful接口,负责接收用户请求并返回推荐结果;模型推理服务采用TensorFlow Serving或TorchServe进行高性能部署,并通过GPU加速实现毫秒级响应;数据存储层使用PostgreSQL存放结构化数据,Redis缓存热点车辆与用户特征;为保障系统可扩展性,采用Docker容器化与Kubernetes编排,实现水平扩容与灰度发布。与此同时,为满足隐私合规需求,系统在数据采集与模型训练阶段引入差分隐私技术,对用户行为日志进行噪声注入,并采用联邦学习框架在本地设备上完成部分模型更新,避免敏感数据外泄。
评估与优化阶段,首先使用离线评估指标(如MAP、NDCG、HitRate)对推荐模型进行客观评价;随后通过A/B测试验证在线效果,监测点击率、成交率与用户留存等业务指标;根据实验结果迭代模型结构与参数,采用强化学习策略对动态推荐进行在线优化;最后,对系统性能进行压力测试与瓶颈分析,针对CPU、GPU利用率、内存占用与网络延迟进行优化。
综上所述,本研究通过完整的数据处理链条、多模态特征融合、混合推荐模型与可扩展系统架构的有机结合,旨在为二手车交易平台提供精准、高效且可解释的个性化推荐服务,并在技术实现与业务落地之间架起桥梁。
六、需求分析
用户需求方面,二手车消费者在交易过程中主要关注车辆信息的完整性与真实性、价格的合理性、购买决策的便利性以及交易安全与售后保障。 具体而言,用户期望能够通过精准的个性化推荐快速定位符合自身预算与偏好的车型,从而减少浏览时间;同时希望系统能够展示车辆的详细参数、历史维修记录与真实车况评估,增强对信息真实性的信任;在价格方面,用户倾向于获取市场行情对比与动态折扣建议,以确保交易价格公正;此外,用户还需要一个简洁直观的交互界面,使得搜索、筛选、比较与沟通等流程顺畅无阻;最后,交易安全与售后服务也是不可或缺的需求,用户期望平台能够提供身份验证、支付保障以及车辆质保承诺。
功能需求方面,系统必须具备多模态数据采集与处理模块,以实现对车辆结构化属性、图片与文本评论的统一解析;在特征工程层面,需要构建车辆与用户的多维表示,并通过知识图谱或属性层级关系进行语义补全;推荐算法层面,应实现协同过滤、神经协同过滤与图神经网络的混合模型,并支持冷启动与动态更新;系统接口需要提供RESTful API,支持用户查询、推荐结果获取、兴趣反馈与交易意向提交;在可解释性方面,系统应能生成“推荐理由”或属性相似度说明,以提升用户信任;安全层面需实现身份认证、权限控制与差分隐私保护;性能层面,系统必须支持高并发请求,推理延迟低于百毫秒,并具备水平扩容与灰度发布能力;最后,评估与监控模块应提供离线指标计算、在线A/B测试以及实时日志分析,以持续优化推荐效果与系统稳定性。
七、可行性分析
经济可行性方面,本研究所采用的Python技术栈与开源框架(如TensorFlow、PyTorch、FastAPI、Docker)均为免费或低成本资源,能够显著降低软件开发与维护费用;同时,系统部署在云端可按需扩容,避免了高昂的硬件采购与运维成本;在商业模式层面,推荐系统可为二手车平台提供增值服务,通过提升成交率与用户粘性,实现广告收入或交易佣金的增长,从而形成正向收益循环;此外,系统可通过数据分析为平台提供精准营销与库存管理建议,进一步降低运营成本并提升利润空间。社会可行性方面,二手车交易在我国已成为重要的汽车消费方式,用户对信息透明度与交易安全的需求日益增强,本系统通过多模态特征融合与可解释推荐机制,有助于提升消费者对平台的信任度与满意度;同时,该技术能够帮助低收入群体降低购车门槛,促进二手车市场的公平竞争;在监管层面,系统将遵循个人信息保护法、网络安全法等相关法规,采用差分隐私与加密传输等技术手段保障用户数据安全,从而获得监管机构与公众的认可。技术可行性方面,Python生态已成熟且社区活跃,为深度学习、图神经网络与自然语言处理提供了丰富的库与工具;在算法层面,混合推荐模型已在相关领域取得实证效果,且可通过迁移学习与微调快速适配二手车数据;在系统架构层面,微服务化、容器化与自动化部署技术成熟,可实现高并发、高可用的在线服务;在数据层面,现有二手车平台公开的结构化数据与图片、文本资源丰富,且可通过爬虫或API获取,满足模型训练与评估需求;综上所述,从经济、社会与技术三个维度来看,本研究具备高度可行性,并能够为二手车交易市场带来显著价值。
八、功能分析
系统功能模块可划分为七大层面,分别为数据采集与预处理、特征工程与多模态融合、推荐算法引擎、可解释性与反馈机制、用户交互接口、安全隐私保障以及监控评估与持续优化。
数据采集与预处理模块负责从国内外二手车交易平台抓取结构化车辆信息、图片及用户评论文本,并通过爬虫技术或API获取实时数据;随后对原始数据进行清洗、缺失值填补、异常检测与字段标准化,以形成统一的数据仓库;该模块还需实现图片尺寸归一化、文本分词与情感标注,为后续特征抽取奠定基础。
特征工程与多模态融合模块将结构化属性映射为数值与类别特征向量,利用预训练视觉模型提取车辆图像深度特征,并通过全连接层降维;对用户评论文本采用BERT或RoBERTa进行语义编码,得到文本嵌入;随后通过拼接、注意力机制或图卷积方式将三类特征融合,形成统一的车辆表示向量;此外,该模块还会构建车辆属性知识图谱,并利用图嵌入技术补全稀疏特征。
推荐算法引擎模块由三部分组成:协同过滤子模块负责对用户-车辆交互矩阵进行低秩分解,生成隐因子;神经协同过滤子模块将隐因子输入多层感知机学习非线性关系;图神经网络子模块在车辆属性图上进行消息传递,捕捉邻接属性相似性;最终通过加权融合或堆叠式集成得到推荐得分。
可解释性与反馈机制模块利用知识图谱或因果推断模型为每条推荐结果生成“推荐理由”或属性相似度说明;同时收集用户点击、收藏、购买等行为反馈,作为在线学习的监督信号;该模块支持动态权重调整与冷启动补偿,以提升模型鲁棒性。
用户交互接口模块基于FastAPI或Django提供RESTful API,支持搜索查询、筛选条件、个性化推荐获取、兴趣标签提交与交易意向登记;前端可通过响应式设计实现移动端与桌面端的无缝体验;该模块还需实现分页、排序与多语言支持,以满足不同地区用户需求。
安全隐私保障模块采用OAuth2.0或JWT进行身份认证与权限控制;对敏感数据使用AES或RSA加密传输,并在数据库层启用字段级加密;差分隐私技术在日志记录与模型训练阶段加入噪声,防止信息泄露;联邦学习框架可在本地设备完成部分模型更新,进一步降低数据外泄风险。
监控评估与持续优化模块集成Prometheus与Grafana实现实时指标监控,包括请求延迟、CPU/GPU占用率、缓存命中率等;离线评估采用MAP、NDCG、HitRate等指标对模型进行周期性验证;在线A/B测试框架支持多版本推荐策略的并行实验,并通过统计显著性检验决定上线方案;根据评估结果自动触发模型再训练或参数微调,实现闭环优化。
九、数据库设计
Users
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
user_id | 用户编号 | 10 | VARCHAR(10) | PK | 主键,唯一标识用户
username | 用户名 | 50 | VARCHAR(50) | | 用于登录与显示
email | 邮箱地址 | 100 | VARCHAR(100)| | 唯一,验证用
password_hash | 密码哈希值 | 128 | CHAR(128) | | 存储加密后的密码
created_at | 注册时间 | 19 | DATETIME | | 记录用户创建时间
Vehicles
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
vehicle_id | 车辆编号 | 10 | VARCHAR(10) | PK | 主键,唯一标识车辆
seller_id | 卖家用户编号 | 10 | VARCHAR(10) | FK (Users.user_id) | 外键,指向卖家
brand | 品牌 | 50 | VARCHAR(50) | |
model | 型号 | 50 | VARCHAR(50) | |
year | 年份 | 4 | INT | |
mileage_km | 行驶里程(公里) | 10 | INT | |
price_cny | 价格(人民币) | 10 | DECIMAL(12,2)| |
condition_score | 车况评分(0-5) | 1 | TINYINT | |
description_text| 描述文字 | 5000 | TEXT | |
VehicleImages
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
image_id | 图片编号 | 10 | VARCHAR(10) | PK |
vehicle_id | 所属车辆编号 | 10 | VARCHAR(10) | FK (Vehicles.vehicle_id)| 外键,指向车辆
image_url | 图片URL | 255 | VARCHAR(255)| |
uploaded_at | 上传时间 | 19 | DATETIME | |
VehicleAttributes
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
attribute_id | 属性编号 | 10 | VARCHAR(10) | PK |
vehicle_id | 所属车辆编号 | 10 | VARCHAR(10) | FK (Vehicles.vehicle_id)| 外键,指向车辆
attribute_name | 属性名称(如颜色)| 50 | VARCHAR(50) | |
attribute_value | 属性值 | 255 | VARCHAR(255)| |
UserInteractions
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
interaction_id | 交互编号 | 10 | VARCHAR(10) | PK |
user_id | 用户编号 | 10 | VARCHAR(10) | FK (Users.user_id)| 外键,指向用户
vehicle_id | 车辆编号 | 10 | VARCHAR(10) | FK (Vehicles.vehicle_id)| 外键,指向车辆
interaction_type| 交互类型(点击、收藏、购买)| 20 | VARCHAR(20) | |
interaction_time| 交互时间 | 19 | DATETIME | |
RecommendationHistory
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
rec_id | 推荐记录编号 | 10 | VARCHAR(10) | PK |
user_id | 用户编号 | 10 | VARCHAR(10) | FK (Users.user_id)| 外键,指向用户
vehicle_id | 推荐车辆编号 | 10 | VARCHAR(10) | FK (Vehicles.vehicle_id)| 外键,指向车辆
score | 推荐得分 | 5 | DECIMAL(5,3)| |
recommended_at | 推荐时间 | 19 | DATETIME | |
以上表结构遵循第一范式与第二范式,避免了数据冗余与更新异常。所有主键均为单字段唯一标识,外键通过参照完整性约束保证数据一致性。
十、建表语句
CREATE TABLE IF NOT EXISTS Users (
user_id VARCHAR(10) NOT NULL,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
password_hash CHAR(128) NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (user_id),
UNIQUE KEY idx_email_unique (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS Vehicles (
vehicle_id VARCHAR(10) NOT NULL,
seller_id VARCHAR(10) NOT NULL,
brand VARCHAR(50) NOT NULL,
model VARCHAR(50) NOT NULL,
year INT UNSIGNED NOT NULL,
mileage_km INT UNSIGNED NOT NULL,
price_cny DECIMAL(12,2) UNSIGNED NOT NULL,
condition_score TINYINT UNSIGNED NOT NULL,
description_text TEXT,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (vehicle_id),
KEY idx_seller_id (seller_id),
KEY idx_brand_model_year (brand,model,year),
CONSTRAINT fk_vehicles_seller FOREIGN KEY (seller_id) REFERENCES Users(user_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS VehicleImages (
image_id VARCHAR(10) NOT NULL,
vehicle_id VARCHAR(10) NOT NULL,
image_url VARCHAR(255) NOT NULL,
uploaded_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (image_id),
KEY idx_vehicle_id_img (vehicle_id),
CONSTRAINT fk_vehicleimages_vehicle FOREIGN KEY (vehicle_id) REFERENCES Vehicles(vehicle_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS VehicleAttributes (
attribute_id VARCHAR(10) NOT NULL,
vehicle_id VARCHAR(10) NOT NULL,
attribute_name VARCHAR(50) NOT NULL,
attribute_value VARCHAR(255),
PRIMARY KEY (attribute_id),
KEY idx_vehicle_id_attr (vehicle_id),
CONSTRAINT fk_vehicleattributes_vehicle FOREIGN KEY (vehicle_id) REFERENCES Vehicles(vehicle_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS UserInteractions (
interaction_id VARCHAR(10) NOT NULL,
user_id VARCHAR(10) NOT NULL,
vehicle_id VARCHAR(10) NOT NULL,
interaction_type ENUM('click','favorite','purchase') NOT NULL,
interaction_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (interaction_id),
KEY idx_user_interaction_user (user_id),
KEY idx_user_interaction_vehicle (vehicle_id),
CONSTRAINT fk_userinteractions_user FOREIGN KEY (user_id) REFERENCES Users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_userinteractions_vehicle FOREIGN KEY (vehicle_id) REFERENCES Vehicles(vehicle_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS RecommendationHistory (
rec_id VARCHAR(10) NOT NULL,
user_id VARCHAR(10) NOT NULL,
vehicle_id VARCHAR(10) NOT NULL,
score DECIMAL(5,3) UNSIGNED NOT NULL,
recommended_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (rec_id),
KEY idx_rec_user (user_id),
KEY idx_rec_vehicle (vehicle_id),
CONSTRAINT fk_recommendationhistory_user FOREIGN KEY (user_id) REFERENCES Users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_recommendationhistory_vehicle FOREIGN KEY (vehicle_id) REFERENCES Vehicles(vehicle_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方👇🏻获取联系方式👇🏻



![打卡信奥刷题(3665)用C++实现信奥题 P12195 [NOISG 2025 Prelim] Itinerary-171主机测评](https://www.171host.com/wp-content/uploads/2026/11/20261101084528-6ae6fc28235d6-220x150.png)


