2013-03-19 4 views
0

내 목표는 사용자 정보와 비밀번호를 저장하는 테이블을 만드는 것입니다. 또한 로그인 실패 횟수를 추적하고 싶습니다. 먼저SQL에서 로그인 테이블 만들기

: 사용자

UserNo의 테이블 : 그러나, 여기에 테이블에 대한 간단한 설명입니다 ID 사용자의는

이름 : 사용자의 이름

이메일

두 번째 : 로그인 테이블

UserNo는 :

세 번째 마지막

암호와 동일합니다 : 날짜 및 로그인

카운트 시간 : 카운터

UserNo

날짜 시간을 추적 테이블 이는 사용자가 잘못 로그인 할 때마다 증가합니다.

마지막 세 테이블에서 나는 내가 한 일은 전문적인 방법이라고 생각하지 않습니다. 더 좋은 아이디어가 있습니까? 특히 추적 테이블을 사용합니다.

감사

+0

나는 이것을 모두 한 테이블에 넣는 것을 고려할 것입니다. 로그인에 성공하면 실패한 카운터를 재설정하고 모든 카운터를 추적 할 필요가없는 한 대부분의 이전 날짜 및 시간 만 추적합니다. –

+0

왜 전문적이지 않다고 생각하십니까? 당신은 테이블 1에 비밀번호를 넣고 테이블 2를 없앨 수 있습니다. 사용자가 로그인 할 때마다 테이블 3에 레코드가 생깁니 까? 그렇지 않은 경우에도 첫 번째 표에 병합하여 LastSuccessfulLoginDate를 사용할 수 있습니다. – RobJohnson

답변

2

포인트의 몇 가지 : 당신이이 경우에 당신이를 추적하는 추가 필드가 필요합니다 (암호 기록을 유지하려고하지 않는 한 두 번째 테이블에 대한 이유가 없다

  1. 암호가 생성 된 날짜)

  2. 세 번째 테이블에서 잘못된 로그인 횟수에 카운터를 사용하지 마십시오. 대신 모든 로그인 시도 (성공 또는 기타)에 대한 레코드를 작성하고 쿼리를 사용하여 필요할 때마다 카운트를 검색하십시오.

0

당신은 하나의 테이블 다음

UserID, UserName, UserEmail, Password, Login_Timestamp, Counter 

단일 테이블의 모든 값을 절약 할 수 있습니다 귀하의 모든 필드를 넣을 수 있습니다

3

왜 당신은 그들이 분리 유지된다? ID, 사용자 이름, 암호 해시, 마지막 로그인 날짜 및 실패한 시도 카운터가있는 users 테이블이있는 것이 가장 좋은 이유는 무엇입니까?

그렇지 않으면 로그인 시도를 자체 테이블로 분리하고 상태를 기록 할 수 있습니다. SUCCESS (성공) 또는 FAIL (실패)을 선택하면 마지막으로 성공한 이후 실패한 시도 횟수를 절차 적으로 계산할 수 있으며 실패한 로그인인지 아닌지에 대한 전체 감사도 제공합니다.

3

사용자 당 암호가 하나뿐이므로 첫 번째 두 테이블을 병합 할 수 있으므로 한 테이블의 한 행에있는 모든 사용자 데이터를 한 테이블에 저장하는 것이 좋습니다.

세 번째 테이블은 각 로그인의 타임 스탬프를 기록하고 추가 열을 추가 한 경우 실패한 로그인의 타임 스탬프를 기록 할 수 있습니다. 그러면 quesy는 사용자 당 실패한 총 로그인 수를 제공합니다.

마지막 로그인 이후에 실패한 로그인 수를 계산하는 경우 카운터를 첫 번째 표에 다시 넣을 수 있습니다.