2011-09-23 53 views
0

我有一个数据库与USERS表和事件表,都与自动增量整数主键称为ID。当客户端应用程序启动事件时,会向服务器发送一条消息,并且服务器会使用启动事件的用户的用户名(以及更多数据)在EVENTS表中创建一个新的EVENT条目。 现在需要时重新提取此事件的最佳做法是什么? 例如,如果用户希望向服务器询问此事件的第二天,服务器是否应通过用户名搜索EVENT表(每个用户在表中只有一个事件)?如果用字符串搜索效率不是那么低,那么通过事件整数ID? 或者当服务器在EVENTS表中创建事件条目时,我需要向用户发送条目ID,因此下一次用户请求事件时,他可以用ID来询问它。但是如果我去做了使用自动递增的ID与业务登录和IM不知道这是很好的这样的IM ..数据库自动增加主键与企业登录

回答

0

你想在事件使用foreign key.与用户ID

为了让事件由特定用户做,你只是做

select events.*, users.* from users left join events where users.id = events.user_id 
WHERE user.username = 'johnboy' 
+0

感谢您的回复,但如果用户可以有更多的事件表中的一个事件是什么,我希望获取特定的事件?现在我不能通过用户名获取,我应该使用事件的自动递增主键吗?或者我应该添加另一个唯一的号码来识别事件? – Eyal

+0

你应该有一个你可以放在where子句中的事件名:'WHERE user.username ='johnboy'和event.name ='sleep''。你不想使用id号码,因为它没有意义。一个文字标签更好。 –