2011-11-11 4 views
0

mysql과 visual basic을 사용하여 로그인/아웃 프로그램을 만들고 있는데 약간의 도움이 필요합니다. 두 테이블 event_inevent_out이 있고 각 테이블 아래에 각 행의 번호 (1부터 시작)를 자동으로 생성하는 event_id이 있습니다. 사용자를 기반으로 숫자를 생성 할 수 있는지 궁금합니다. 사용자 A가 와서 sign_id에 1이 생성되었다고 가정 해 봅시다. 그런 다음 사용자 B가 와서 로그인합니다. 나는 그를 위해 1을 생성하기를 원합니다 ... 그래서 모든 사용자 A의 event_id는 1,2,3이 될 것이며, in 및 out 테이블 모두에 대한 각 사용자의 event_id도 동일하게됩니다. 이와mysql의 고유 ID

나는 그들이에 있던 시간을 얻을 수 event_in의에서 event_out에서 각 사용자의 타임 스탬프를 뺄 수있을 것입니다.

내가 믿고 내가 각 사용자에 대해 개별적으로 번호를 생성하지 않는 경우, 다음 사용자 A가 로그인 (event_id에 대해 event_in 테이블에 1이 생성됨)하지만 아직 로그 아웃하지 않은 상태에서 사용자 B가 로그인하고 로그인하면 (2를 얻음) 사용자 A가 로그인하기 전에 로그 아웃한다고 가정 해 보겠습니다. 아웃에 대해 1을 얻고 사용자 A는 아웃에 대해 2를 얻습니다. 이제 사용자와 현재 쿼리로 타임 스탬프를 계산할 수 없습니다. 당신은 내가 간단 알려 만들 수있는 방법에 어떤 suggetion이있는 경우

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 코드가 그 것입니다 사용자가 로그인하는 것을 차단하려면 로그인해야합니다. 다시 로그인하기 전에 로그 아웃해야합니다.

답변

0

사용자를 이벤트에 매핑해야하는 상황이 아닌가?

나는이

tblEvents 같은 이벤트와 사용자 뭔가 테이블 제안 :

  • tblUsers_UserId INT
  • 에서 EventId INT를

다음 사용자 테이블

같은 것

tblUsers를 :

  • 사용자 아이디 INT PK AI
  • UserDesc VARCHAR()

그런 다음 당신은 실제로 이벤트에 사용자를 매핑하고 모든 사용자에 대해 이벤트를 할당 할 수 있습니다.

+0

내 모든 컴퓨터 과학자와 천재는 어디입니까? 아무도 나를 도와주고 싶지 않아? : / – user1012135