mysql的唯一ID

mysql的唯一ID,mysql,vb.net,Mysql,Vb.net,我正在使用mysql和visual basic制作一个登录/注销程序,需要一些帮助。 我有两个表event\u in和event\u out,每个表下都有event\u id,它会自动为每行生成一个数字(从1开始)。我想知道是否有可能根据用户生成数字。 假设用户A来登录,1被生成到事件id中,然后用户B来登录。我也希望为他生成1…所以所有用户A的事件id都是1,2,3。。。并且每个用户的in和out表的event_id也将相同 有了这个,我将能够从event\u in的时间戳中减去event\u

我正在使用mysql和visual basic制作一个登录/注销程序,需要一些帮助。 我有两个表
event\u in
event\u out
,每个表下都有
event\u id
,它会自动为每行生成一个数字(从1开始)。我想知道是否有可能根据用户生成数字。 假设用户A来登录,1被生成到事件id中,然后用户B来登录。我也希望为他生成1…所以所有用户A的事件id都是1,2,3。。。并且每个用户的in和out表的event_id也将相同

有了这个,我将能够从
event\u in
的时间戳中减去
event\u out
中每个用户的时间戳,得到他们在
中的时间戳

我相信如果我没有为每个用户分别生成数字,那么假设用户A登录(1是为
event\u id
表中的
event\u in
生成的),但还没有注销,然后用户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 "
如果你对我如何简化有任何建议,请告诉我,我只想计算他们登录的时间


还有一个VB代码可以阻止用户登录,比如如果他们登录,他们必须先注销,然后才能再次登录

这不是一种需要将用户映射到事件的情况吗

我会为事件和用户推荐这样的表格

t等级

  • tblUsers_UserId INT
  • EventId INT
然后,用户的表将如下所示

tblUsers

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

然后,您可以将用户映射到事件,并为每个用户分配事件。

我所有的计算机科学家和天才都在哪里?有人想帮我吗/