2014-06-05 6 views
1

내 데이터베이스 테이블에는 암호화 된 여러 키 (중요한 정보)가 있습니다. 이 키는 ID 필드를 통해 사용자와 연관됩니다. 언제든지 ID 필드를 업데이트하여 사용자를 무효화시켜 더 이상 식별 할 수 없게 만들 수도 있습니다. 그러나 나는 데이터베이스에서 행을 완전히 제거하고 싶지 않습니다. 대신 감사 목적으로 보관하고 싶습니다.데이터베이스 행을 감사의 목적으로 보존하면서 어떻게 무효화 할 수 있습니까?

내가 따라야 할 공통 규칙이 있습니까? 아니면 단순히 유효하지 않은 ID 필드에 충분히 임의의 내용으로 문자열을 추가하는 것입니까? 사용자 ID를 업데이트 예컨대

표 무효화 요청하기 전에

| ID  | KEY  | 
------------------------ 
| user123 | yiuy321ui | 

표 무효화 요청 후

| ID     | KEY  | 
-------------------------------------- 
| legacy_79878_user123 | yiuy321ui | 
+3

사용자 상태를 유지하기 위해 다른 테이블 필드를 추가 할 수없는 이유가 있습니까? 나는 상태를 유지하기 위해 ID 필드를 사용하여 모든 규칙을 위반했다고 생각합니다. 그것이 나 였다면 당신은 켜고 끌 수있는 단순한 불린 '유산'깃발을 가지고있을 것입니다. – halabuda

+0

네, 이해가됩니다, 고마워요. 만약 당신이 대답을 내가이 질문에 동의 할 수 추가 싶습니다. – cduggan

답변

2

모든 테이블의 ID 필드를 동적으로 사용하지 않아야합니다. 규칙과 모범 사례를 무시할뿐만 아니라 해당 필드를 조회/결합하는 다른 테이블과의 연결을 끊을 가능성이 큽니다. 테이블에 간단한 부울 필드를 추가하고 해당 필드를 true 또는 false로 설정하여 사용자의 유효성을 유지하는 것이 좋습니다.

2

정말이 일을 아주 좋은 방법이 아니다. 원하는 것은 '이 사용자는 활성화되지 않았습니다'라고 말할 수 있기 때문에 사용자 테이블에 활성 비트 필드가있는 것이 좋습니다.

'활성화 된'사용자 만 확인할 수 있도록 사용자의 유효성을 검사하는 코드를 업데이트해야하지만, 장기적으로는 더 쉬울 것입니다. 필요할 때 쉽게 다시 활성화 할 수 있습니다.).

관련 문제