다음과 비슷한 기능을 생각중입니다.
전에 사용하던 이메일주소 입니다! (전에 사용하던 이메일주소들 리스트 를 보여줌)
전에 사용하던 패스워드 입니다! (전에 사용하던 패스워드들을 보여줌)
전에는 남성이셨네요! (이전 성별들 을 보여줌)
등과 같은 정보들을 전부 기록하려면,
[user_table]
id
email
password
gender
+ audit_table_fk
[audit_table]
user_id
date_modified
who_modified
which_column
previous_value
modified_value
의 방식으로 1개의 테이블을 따로 만들어 관리를 하거나(1),
또는,
각 컬럼들을 2차 정규화시켜 관리를 하는 방법(2)이 있을 것 으로 혼자 추정중인데요.
방법 (1) 은 직관적이지 않고 헷갈려서 몸이 꼬일꺼같고,
방법 (2) 또한 직관적이지도 않을뿐더러 테이블이 많아서 전기비가 많이 나올거같습니다.
만약 1차 정규화를 위반하고 data type 을 varchar(max) 로 지정한 후, value 에 히스토리를 리스트로 저장하는건 위험한 행동가요?
TEXT, JSON 타입도 있긴 하던데.