【发布时间】:2012-12-08 06:38:34
【问题描述】:
我正在开发的网站有 3 种不同类型的用户:管理员、申请者、审阅者。这些组中的每一个都将有一些需要存储的基本信息(姓名、ID、电子邮件等)以及每个组独有的一些数据。我为每个特定组创建了一个users 表以及一个表来存储它们的唯一数据。
- 用户:id、f_name、l_name、email、user_type
- users_admin:id、user_id、office、emp_id
- users_applicant:id、user_id、dob、地址
- users_reviewer:id、user_id、active_status、地址、电话
如果用户的user_type 为“1”(申请人)登录,我需要JOIN 到users_applicants 表以检索他们的完整记录。我尝试使用UNION,但我的表有很大不同的列。
有没有办法根据用户的类型编写一个条件查询,将JOIN 写入正确的表?我是不是完全走错了路?
提前感谢您的帮助!
【问题讨论】:
-
为什么这必须发生在 SQL 而不是 PHP 中?你已经尝试过什么?
-
既然您一开始就必须处理 3 个不同的列组,为什么不使用 3 个不同的查询呢?
-
@DanMan 我想这也是我想知道的一件事。查询获取用户的类型,然后使用 PHP 确定要使用的 JOIN 是否是不好的做法?
-
@DanMan 下面是正确的,如果您在此处使用 TPT,请转储表特定键,而基表中的 Id 键是您唯一需要的键。
标签: php mysql sql database-design relational-database