2011-11-11 145 views
0

我使用mysql和visual basic進行登錄/註銷程序,需要一些幫助。 我有兩個表event_inevent_out和每個表下我有event_id,它會自動爲每一行生成一個數字(從1開始)。我想知道是否可以根據用戶生成數字。 因此,假設用戶A來登錄,將1生成到event_id。然後用戶B來登錄。我也想爲他生成1 ...因此,所有用戶A的event_id都將是1,2,3 ...並且每個用戶的輸入和輸出表的event_id也是相同的。mysql的唯一ID

有了這個,我就能減去event_out從的event_in每個用戶的時間戳得到多久,他們是in。

我相信,如果我不單獨生成的數字爲每一個用戶的話,假設用戶A登錄(在event_in表中爲event_id生成了1),但尚未登出,然後用戶B登錄並登錄(他獲得2),但在用戶A登錄之前他登出,他得到1,用戶A得到2。所以現在用戶和我目前的查詢我將無法計算時間戳。

SQL = "SELECT CONCAT(u.lastname, ', ', u.firstname) AS Name, g.group_name AS Class, " _ 
     & "DATE_FORMAT(i.timestamp_in,'%b %d %Y - %r') AS TimeIn, DATE_FORMAT   (o.timestamp_out,'%b %d %Y - %r') AS TimeOut " _  
     & "FROM event_in i, event_out o, user u, groups g " _ 
     & "WHERE(i.user_bannerid = u.user_bannerid) " _  
     & "AND o.user_bannerid = u.user_bannerid " _ 
     & "AND i.user_bannerid = o.user_bannerid " _ 
     & "AND i.event_id = o.event_id " _ 
     & "AND o.event_id = i.event_id " _ 
     & "AND i.group_id = o.group_id " _ 
     & "AND i.group_id = g.group_id " _ 
     & "AND o.group_id = g.group_id " 

如果你對我怎麼可以把它簡單的讓我知道任何suggetion,我只是想能夠計算出他們是如何長簽署。

也就是有一個VB代碼,將防止用戶登錄,進入,進入......如果他們登錄,他們必須先登出才能再次登錄。

回答

0

是不是那種需要將用戶映射到事件的情況?

我建議的事件和用戶這樣的事情

tblEvents表:

  • tblUsers_UserId INT
  • EVENTID INT

然後表用戶會像

向tblUsers

  • 用戶ID INT PK AI
  • UserDesc VARCHAR()

然後你就可以用戶實際映射到事件並指定事件爲每一位用戶。

+0

我的計算機科學家和天才們在哪裏?有人想幫助我嗎? :/ – user1012135