데이터베이스에 표시 할 엔티티가 두 개 있습니다.
- 속성 (x, y, z, r)이있는 엔티티 A입니다.
- 속성 (x, y, z, s)을 갖는 엔티티 B.동일한 테이블에 유사한 엔티티를 저장하고 데이터베이스의 여러 테이블에 저장하는 경우
2 개의 엔티티에는 3 개의 동일한 속성이 있고 1 개의 다른 속성 만 있습니다. 매우 유사하지만 비즈니스 로직과 함께 사용되지는 않습니다.
- 두 개의 별도의 테이블, 각 엔티티를 생성합니다
다음을 대표하는 (어쩌면 그 이상)이 방법을있다.
이것은 직접적인 방법입니다. 상대적으로 작은 두 개의 테이블과보다 명확한 쿼리 및 비즈니스 로직을 제공합니다. 그러나 테이블은 거의 동일하므로 분명히 중복됩니다 (동일한 속성이 3 이상이라는 것을 상상해보십시오). - 5 개의 속성 (x, y, z, r, s, 유형)으로 하나의 공유 테이블을 생성하십시오.
(type)은이 행에 표시되는 엔터티의 유형 (A 또는 B)을 나타냅니다. 이것은 속성 (r)과 (s)가 필수가 아니므로 엔티티의 유형을 결정하기 위해 의존 할 수 없다고 가정합니다.
예를 들어, 이것은 Wordpress에서 게시물 및 페이지 (및 다른 몇 가지 엔터티)를 나타내는 데 사용되는 접근 방법입니다. null 필드를 많이 포함하는 상대적으로 큰 테이블 하나와 비교적 지저분한 쿼리 및 비즈니스 로직을 사용하여 행을 필터링하고 논리적으로 엔티티를 분리합니다. 하지만 두 개의 중복 테이블 대신 하나의 고유 한 테이블로 끝납니다.
내 질문은 : 다른 장점과 각 방법의 단점은 무엇
1?
2 두 가지 접근 방식의 사용 사례는 무엇입니까?
3 엔티티의 수가 증가했거나 관계가 복잡 해지면 다른 엔티티가 분명히 나을 것인가? 2 개의 엔티티 대신 20 개의 엔티티가있는 것처럼, 엔티티는 데이터베이스의 다른 엔티티와 다 대다 관계를 유지합니다.
감사합니다.