2011-09-23 51 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號碼,因爲它沒有意義。一個文字標籤更好。 –