데이터베이스에 개별 레코드의 메타 데이터를 저장하는 가장 좋은 방법은 무엇입니까?
데이터베이스의 많은 테이블에 대한 생성 시간 및 마지막 업데이트 시간과 같은 일반적인 메타 데이터를 저장해야합니다. 몇 가지 다른 해결책을 찾았습니다.
메타 데이터를 테이블에 직접 저장하십시오.
장점 :
- 메타 데이터는 레코드에 직접 연결됩니다
- 메타 데이터를 검색하는 데 조인이 필요하지 않습니다.
단점 :
- 상속이 사용되지 않는 한 많은 중복 열이 필요합니다.
- 메타 데이터와 비즈니스 데이터는 분리되지 않습니다
소프트 외래 키를 사용하여 일반 메타 데이터 테이블을 작성하고 데이터를 올바른 테이블 및 레코드에 링크하십시오.
장점 :
- 열 중복 없음
- 메타 데이터는 비즈니스 데이터와 분리됩니다
단점 :
- 메타 데이터와 데이터간에 직접 링크가 없습니다 (FK는 사용할 수 없음)
- 조인에는 추가 조건이 필요합니다
메타 데이터가 필요한 각 테이블에 대해 개별 메타 데이터 테이블을 작성하십시오.
장점 :
- 메타 데이터는 레코드에 직접 연결됩니다
- 메타 데이터는 비즈니스 데이터와 분리됩니다
단점 :
- 추가 테이블이 많이 필요합니다
- 상속이 사용되지 않는 한 많은 중복 열이 필요합니다.
여기에 언급 한 것보다 더 많은 옵션, 장단점이 있습니까? 이 메타 데이터를 저장하는 가장 좋은 방법은 무엇입니까?
hstore
또는JSON
열을 사용 하여 문제를 해결할 수 있습니까?