무엇보다 우선, 나는 당신이 어떤 종류의 관계형 데이터베이스 관리 시스템, 아마도 SQL을 사용하고 있다고 가정하고 있습니다.
'현실 세계'의 관계가 맞다면, 70 개의 테이블 각각의 각 행이 진정한 의미의 정보를 보유하고 있다면, '차량'테이블에서 하나 이상의 기본 키 값을 찾을 수 있습니다.
순수한 데이터베이스에서 Normalization 관점에서 일대일 테이블 매핑이 관련되어있는 경우 각 테이블의 열을 '차량'테이블로 이동할 수 있다고 주장 할 수 있습니다. 그러나 다른 일대일 테이블에 엄청난 양의 컬럼이 있다면 테이블을 읽으려는 사람이 다루기 힘들 수있는 것처럼 들립니다. (테이블을 직접 보는 데 관심이 있다고 가정하면 ... 이 모든 것이 어쨌든 응용 프로그램의 프론트 엔드에 의해 추상화되었거나 간단한 쿼리를 사용하여 많은 열이 포함 된 단일 테이블을 선택적으로 검사해야합니다.
또한 데이터베이스의 선택적으로 Denormalize 부분에 대한 좋은 성능상의 이유가 있습니다.
모두는 실제로 달성하려는 대상에 따라 다릅니다. 정규화 및 비정규 화에 대한 이론적 인 이해가 좋은 출발점 일 수 있습니다.
일반적으로 RDBMS의 경우 달리해야 할 적절한 이유가없는 한 기본적으로 정규화됩니다. 그리고 성능을 향상시키기위한 옵션으로 비정규 화 (Denormalization)를 고려하기 전에 인덱스를 제대로 작성하고 쿼리를 구조화해야합니다.
나는 귀하의 경우 제공된 정보에서 '차량'테이블에 일대일 테이블의 열을 옮기고 싶습니다.
차량 테이블에서 해당 정보를 이동하면 50 열 이상이됩니다. –
예, 그 자체로는 문제가되지 않습니다. 차량이 진실로 일대일의 50 가지 속성을 가지고 있다면, 괜찮습니다. 이렇게 말하면 많은 수의 열은 아직 조롱되지 않은 일대 다 관계가 더 있음을 암시 할 수 있습니다. 그러나 상황에 따라 달라집니다. – Holf
정보의 일부는 화폐 거래에 관한 것이지만 때로는 다른 개발자에게 테이블에 대한 읽기 권한을 부여해야하지만 사장님은 돈에 대한 세부 정보를보고 싶지 않으므로 별도의 테이블에 있어야한다고 생각합니다.) –