获取用户的主要电子邮件地址mysql php最佳实践

时间:2016-10-16 22:56:34

标签: mysql

我有一个用户表和一个联系信息表,以便每个用户可以拥有多个电话号码和多个电子邮件地址。有没有标准的方法来设置和检索他们的主要联系信息?

“人类”表

ID | name
1  | John
2  | Joan

“human_contact”表

ID | contact_type | contact_info | user_id
1  | email        | john@a.com   | 1
2  | email        | johnny@b.net | 1

“门票”表

ID | human_id | event_date
1  | 1        | 2017-08-01

如果John通常使用johnny@b.net,我如何将该行标记为他的最爱并为大多数查询检索该行?

SELECT *
FROM tickets
LEFT JOIN humans
ON tickets.human_id=humans.ID
LEFT JOIN human_contact
ON human_contact.human_id=humans.ID
WHERE tickets.ID='112'

1 个答案:

答案 0 :(得分:0)

您可以使用名为 fav 的额外颜色,它将具有布尔值。这可以帮助你首先找到他是否有任何赞成使用支票,其中fav == true,然后继续使用该contact_info,或者如果用户没有任何收藏,那么请按照您的常规查询。

即,

if( query( fav==1 for atleast 1 tuple )){
     return tuple with fav==1;
else{
     query ( usual query to get contact_info );
     return query_result;
}

更容易理解。希望这有帮助。