2011-05-02 29 views
0

我正在研究CRM桌面應用程序,該應用程序一次將由多個代理使用,所有代理都將通過相同的客戶列表。我需要在這裏做的是避免代理之間的衝突,因此一旦代理從列表中選擇一個客戶,其他人就不應該能夠看到該行,換句話說,他們不應該能夠選擇該客戶直到第一個代理完成!想到最簡單的方法可能聽起來很愚蠢,就是添加兩個字段LOCK(BIT),LOCK_EXPIRY(DATETIME)並管理它。我不知道但我認爲應該有另一種方式來鎖定特定會話的一行。我在谷歌搜索,我發現了兩個InnoDB鎖定方法,但我不確定這些情況下,這些可以幫助我。如何在MySQL中鎖定一行?

回答

1

我建議你添加你描述的兩個字段,但用LOCKED_BY(AGENT_ID)替換LOCK(BIT)。否則,如果已鎖定客戶列表的代理刷新其頁面,則鎖定的行可能會消失,直至鎖定過期。