Web Application 을 만들다 보면, DB의 테이블을내 공통적인 column 들을 가지고 만들게 된다.
* create_user, modify_user, create_datetime, modify_datetime
- 일반적으로 Admin을 운영하다보면 히스토리 관리를 해야 한다. 운영을 하다보면 실수를 하게 되는데 그 실수의 원인을 파악하기 위해서는 누가, 언제 고쳤는지에 대한 히스토리를 알고 있어야 한다.
* audit log table
- 위의 create_*, modify_* 의 경우, 데이터의 처음과 끝 사용자와 시간만 있다. 데이터가 변경된 흐름이 없다. 따라서 이럴 때는 실제로 변경된 데이터를 기준으로 하는 audit log table 을 만들어야 한다.
- 이 때 가장 쉽게 하려면 DB 단계에서 이 정보를 기록해야 하고, 잘 갖춰진 Postgresql 트리거가 https://github.com/m-martinez/pg-audit-json 이다.
* onwer_user, onwer_group
- 데이터의 permission을 관리하기 위해서는 해당 데이터의 주인과 주인그룹이 있어야 한다. 데이터의 그룹과 group 이 데이터 마다 있어야 한다.
[Sales CRM 툴 설계] 03. 각 Model 의 공통 속성과 구조
2019. 5. 19. 23:23