MS Access如何通过表单选中的俱乐部与队伍值更新表4的teamclubid
实现方案
前置逻辑梳理
现有4张表的关联关系清晰:表3是俱乐部与队伍的关联中间表,唯一teamclubid对应一组clubid+teamid的组合,最终需要将该id回填到表4的球员关联字段中。
具体实现步骤
- 构造下拉框数据源
- 俱乐部下拉框:直接查询表1,
value绑定clubid字段,展示文本绑定Club字段 - 队伍下拉框:如果需要做联动筛选,默认不加载数据,等用户选中俱乐部后,用选中的clubid去表3关联表2,查询该俱乐部下关联的所有队伍,
value绑定teamid字段,展示文本绑定Team字段;不需要联动的话直接加载表2全量队伍即可
- 俱乐部下拉框:直接查询表1,
- 获取匹配的teamclubid
表单提交时,拿到用户选中的clubid和teamid两个值,执行查询语句获取对应关联id:
建议提前给表3的clubid和teamid加联合唯一索引,既可以避免出现重复匹配的异常情况,也能提升查询效率SELECT teamclubid FROM 表3 WHERE clubid = {用户选中的clubid} AND teamid = {用户选中的teamid} LIMIT 1 - 更新表4数据
拿到查询到的teamclubid后,根据业务场景筛选要更新的球员范围执行更新即可,比如按选中的playerid更新单条球员记录:UPDATE 表4 SET teamclubid = {查询到的teamclubid} WHERE playerid = {要更新的球员ID}
可选优化点
- 可以在前端增加实时校验逻辑,用户选完俱乐部和队伍后就提前查询是否存在对应的teamclubid,不存在直接给用户提示,不需要等到提交时报错
- 如果业务支持新增俱乐部+队伍的关联关系,提交时如果没查询到对应teamclubid,可以先往表3插入新的关联记录,拿到自增生成的teamclubid后再更新表4
内容的提问来源于stack exchange,提问作者zalexhp
相关产品推荐
相关产品推荐

