php - MySQL 和 PHP 具有强制和可选值的多选 id
问题描述
几个月前我问了这个问题: MySQL select multiple id at the same time with optional id with php
今天我必须使查询和搜索复杂化:
- 必需的身份证件
- 替代强制性 ID
- 可选 ID
我有一个名为技能的表,其中包含所有数据,一个示例,其中:
- 当需要技能时,skillType = 0;
- SkillType = 1 当技能是必需的替代品时
- 当技能是可选的时,skillType = 2
ID | idUser | 技能 | 技能类型 | 可选技能 |
---|---|---|---|---|
1 | 1 | 1 | 0 | 0 |
2 | 2 | 4 | 0 | 0 |
3 | 2 | 7 | 0 | 0 |
4 | 2 | 8 | 1 | 7 |
5 | 3 | 11 | 0 | 0 |
6 | 4 | 8 | 0 | 0 |
7 | 4 | 11 | 0 | 0 |
8 | 4 | 14 | 1 | 11 |
9 | 4 | 16 | 2 | 0 |
10 | 6 | 1 | 0 | 0 |
我想做 2 次搜索:
- 基本搜索:所有强制和替代 ID
- 高级搜索:所有强制性和替代 ID 和可选 ID。
就我而言:
- 如果我搜索具有 idSkill 4 和 idSkill(7 或 8)的用户,结果为 idUser 2
- 如果我搜索具有 idSkill 8 和 idSkill(11 或 14)以及可选 idSkill 16 的用户,结果是 idUser 4。
我不知道这个系统是否可以工作,或者它是否需要不同的数据库设计。
你能给我一些建议吗?
解决方案
推荐阅读
- reactjs - 在反应中访问嵌套 JSON API 对象中的数据
- azure - Azure B2C 自定义策略无密码登录架构验证错误
- android - Kotlin MVVM Room App 无法恢复数据
- java - Spring data JPA with @Query 使用内部静态 DTO 类
- flutter - 如何在 Flutter 中正确使用 Uri 函数?Uri 和 Url 的区别
- jsp - 每次jsp页面移动都会关闭连接
- rust - 结构继承
- ios - 从终端存档时出现问题
- typescript - 如何找到@types/node 更改日志?
- javascript - 如何使用javascript和正则表达式在多行字符串中的括号之间获取任何内容