정규화에 대한 다른 데이터베이스 디자이너와 흥미로운 토론을하고 있습니다. 이 예에서는 GameTitles 테이블이 있으며 각 레코드에는 게임이 출시 된 연도가 포함되어야합니다. 그는 2NF는 모든 것이 정규화되어야한다고 규정하고 있기 때문에, 연도 필드는 GameTitles 테이블이 참조하는 자체 기본 키를 사용하여 ReleaseYears 테이블로 분리되어야한다고 말합니다. GameTitles 테이블 자체에 필드로 남아 있어야한다고 말합니다.
이것에 대한 나의 주장은 연도는 본질적으로 정적이 아닌 기본이 아닌 숫자 값이라는 것입니다 (즉, 2011은 항상 2011입니다). 이로 인해 고유 식별자로 사용되며 참조이므로 참조 할 필요가 없습니다. 또한 참조 용으로 새해를 테이블에 추가해야하므로 추가 유지 보수가 도입되었습니다. 연도가 넓은 테이블을 미리 채우면 잠재적으로 전혀 참조하지 않는 추가 레코드가 있습니다. 또한 추가 테이블, 레코드 오버 헤드 및 연도에 대한 추가 기본 키가 있으므로 데이터베이스 크기도 증가합니다. 연도를 GameTitles 테이블에서 필드로 유지하면이 추가 유지 보수 및 오버 헤드가 모두 제거됩니다.
이것에 대한 생각?
편집 : 이것을 StackOverflow에 게시해야합니다. 누군가 이것을 삭제하거나주의를 끌기 위해 투표 할 수 있습니까?