我正在开发的网站有 3 种不同类型的用户:管理员、申请人、审阅者。每个组都会有一些需要存储的基本信息(姓名、ID、电子邮件等)以及每个组独有的一些数据。我创建了一个users
表以及为每个特定组创建的表来存储其唯一数据。
- 用户:ID、姓名、姓名、电子邮件、用户类型
- users_admin:id、user_id、office、emp_id
- users_applicant:id、user_id、出生日期、地址
- users_reviewer:id、user_id、active_status、地址、电话
如果user_type
为“1”的用户(申请人)登录,我将需要JOIN
到users_applicants
表来检索他们的完整记录。我尝试使用 UNION
但我的表有截然不同的列。
有没有办法根据用户的类型编写条件查询来JOIN
到正确的表?我的处理方式完全错误吗?
预先感谢您的帮助!
最佳答案
好吧,最终你的表已经有缺陷了。为什么每种类型都有一个表格?为什么不将所有这些字段放入 users
表中,或者放入 user_details
表中(如果您确实想要一个用于非通用数据字段的额外表)?目前,您实际上从关系的角度创建了 4 个独立的用户表。
那么为什么类型表有代理键呢?为什么 user_id
还不是(唯一的)主键?
如果你改变了这一点,你所需要的只是用户 ID 来检索你想要的数据,并且你已经得到了它(否则你甚至无法检索用户类型)。
关于php - "Conditional"根据字段值加入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13977315/