복붙노트

[SQL] 두 테이블 구조의 차이점

SQL

두 테이블 구조의 차이점

나는 매우 혼동 두 구조에 대한입니다. 이 두 테이블의 장점과 단점은 무엇인가? 어느 하나가 더 나은 이유는?

1 번 테이블

해결법

  1. ==============================

    1.일반적인 경우, 두 번째 테이블은 데이터베이스 설계의 맥락에서 안티 패턴이다. 그리고, 더욱, 그것은 특정 이름을 가진 : 엔티티 - 속성 - 값 (EAV). 어떤 경우가 있습니다,이 디자인을 사용할 때하는 것은 정당하지만, 드문 경우입니다 그 - 심지어 거기에 회피 할 수있다.

    일반적인 경우, 두 번째 테이블은 데이터베이스 설계의 맥락에서 안티 패턴이다. 그리고, 더욱, 그것은 특정 이름을 가진 : 엔티티 - 속성 - 값 (EAV). 어떤 경우가 있습니다,이 디자인을 사용할 때하는 것은 정당하지만, 드문 경우입니다 그 - 심지어 거기에 회피 할 수있다.

    데이터 무결성 지원

    사실에도 불구하고, 그러한 구조는이 디자인이 약점을 가지고, 더 "유연한"또는 "고급"것으로 보인다.

    행 재구성

    또한, 행 재건은 일반적인 경우에 무서운 것입니다. 당신이있는 경우, 예를 들어, 5 개 속성 - 5 자기 표를 할 것이다 가입-들. 이러한 간단한 너무의 나쁜 - 첫눈에 - 케이스. 내가 원하지 않는 그래서 심지어 20 개 특성을 유지하는 것입니다 상상.

    내 요점은 - 아니. RDBMS에서 항상이를 방지 할 수있는 방법이있을 것이다. 그것은 끔찍한입니다. EAV를 사용하기위한 경우, 그때 최선의 선택 비 관계형 데이터베이스가 될 수 있습니다.

  2. ==============================

    2.두 번째 경우 (표 2)에서이 복잡하고 우리가 그것을 위해 쿼리를 할 때 데이터를 찾기 위해 많은 시간이 걸릴. 이 경우 데이터가 빠른 방법을 찾기 때문에 열 수에 대해 알고하지 않거나 다음 첫 번째 경우 (표 1) 사용 컬럼의 길이를 수정 한 경우가, 다름 때이 경우 사용됩니다.

    두 번째 경우 (표 2)에서이 복잡하고 우리가 그것을 위해 쿼리를 할 때 데이터를 찾기 위해 많은 시간이 걸릴. 이 경우 데이터가 빠른 방법을 찾기 때문에 열 수에 대해 알고하지 않거나 다음 첫 번째 경우 (표 1) 사용 컬럼의 길이를 수정 한 경우가, 다름 때이 경우 사용됩니다.

  3. ==============================

    3.열 ID, 이름, 나이, 생년월일, 주소 표는 배포하기 전에 알아야 할 때 저장소에 어떤 정보를 기업에 대해, 사용하는 것입니다.

    열 ID, 이름, 나이, 생년월일, 주소 표는 배포하기 전에 알아야 할 때 저장소에 어떤 정보를 기업에 대해, 사용하는 것입니다.

    만 배포 후에 알고있는 경우 열 ID, 컬럼 이름을 가진 테이블, col_value 사용할 수 있습니다, 엔티티에 대한 저장소에있는 정보 (비 기술적 인 사람들은 캡처에 그들이 whish 그 필드를 정의 할 수 예를 들어를해야하는 경우)를. 그것은 덜 효율적이지만, 데이터베이스 스키마를 변경하지 않고 새 필드를 정의 할 수 있습니다.

  4. from https://stackoverflow.com/questions/20782760/difference-between-two-table-structure by cc-by-sa and MIT license