사용자가 구성 할 수있는 응용 프로그램을 작성한다고 가정 해 봅시다. 이 "구성 데이터"를 데이터베이스에 저장하기 위해 두 가지 패턴이 일반적으로 사용됩니다.
단일 행 테이블
CompanyName | StartFullScreen | RefreshSeconds | ... ---------------+-------------------+------------------+-------- ACME Inc. | true | 20 | ...
이름 - 값 쌍의 테이블
ConfigOption | Value -----------------+------------- CompanyName | ACME Inc. StartFullScreen | true (or 1, or Y, ...) RefreshSeconds | 20 ... | ...
나는 야생에서 두 가지 옵션을 모두 보았으며 두 가지 모두 명백한 장점과 단점이 있습니다.
- 단일 행 테이블은 사용 가능한 구성 옵션 수를 제한합니다 (일반적으로 행의 열 수는 제한되어 있기 때문에). 모든 추가 구성 옵션에는 DB 스키마 변경이 필요합니다.
- 이름-값 쌍 테이블에서 모든 것은 "문자열 형식"입니다 (부울 / 날짜 / 등. 매개 변수를 인코딩 / 디코딩해야 함).
- (많은)
개발 커뮤니티 내에서 어떤 옵션이 선호되는지에 대한 합의가 있습니까?