복붙노트

[SQL] 는 "파티 모델"의 장점은 무엇 뒤에 원칙은, 그리고?

SQL

는 "파티 모델"의 장점은 무엇 뒤에 원칙은, 그리고?

은 "파티 모델"관계형 데이터베이스 설계를위한 "패턴"입니다. 적어도 그것의 일부는 등 고객, 직원, 파트너, 팩토링 등 많은 기관 사이에 공통점을 찾는 포함 좀 더 "추상적"데이터베이스 테이블에 그.

내가 다음에 당신의 생각을 찾으려면 :

나는 확실히 모든 응답이 더 제가 직면하고있어 어떤 결정을 내릴 그들에게 도움이 될 것입니다 중 하나에 모든 그 질문 중 하나 ... 아무것도하지만, 감동을 해결하지 않을거야.

감사.

해결법

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

    1.내가 그것을 사용했습니다 정도로, 그것은 대부분의 코드 재사용과 유연성에 관하여이다. 우리는 고객 / 사용자 / 관리자 모델에서 전에 사용했습니다 당신이 한 그룹에서 다른 그룹으로 사용자를 이동해야 할 때 그것은 확실히 그 가치를 증명한다. 그 아래 사용자와 대표 단체 및 기업을 가진이 확장, 그것은 정말 SQL에서 특히 고유없는 추상의 형태를 제공하는 것.

    내가 그것을 사용했습니다 정도로, 그것은 대부분의 코드 재사용과 유연성에 관하여이다. 우리는 고객 / 사용자 / 관리자 모델에서 전에 사용했습니다 당신이 한 그룹에서 다른 그룹으로 사용자를 이동해야 할 때 그것은 확실히 그 가치를 증명한다. 그 아래 사용자와 대표 단체 및 기업을 가진이 확장, 그것은 정말 SQL에서 특히 고유없는 추상의 형태를 제공하는 것.

    이를 좀 더 상세히을 필요로하지만 당신은 위의 비트에 꽤 맞아요. 당신은 데이터베이스의 엔티티 (당사국 호출)의 하청 작업을 끌 수있는 다른 당사국에게 계약 상황을 상상할 수있다. 파티는 직원, 계약자, 또는 회사, 파티의 모든 서브 클래스 수 있습니다. (-> 사람 -> 계약자 파티) 나의 이해에서, 당신은 파티 테이블 다음 더 서브 클래스화할 수있는 각각의 서브 클래스에 대한 다음보다 구체적인 테이블을 가질 것이다.

    당신이 당신의 시스템에 새로운 유형을 추가하고 (새로운 수준으로 이동 사용자가 다른 회사를 고용 회사 등)의 시작과 건축가에 기대하지 않았다 유형 간의 관계를 만들기 위해 유연해야하는 경우는 그 혜택이있다. 그것은 또한 당신에게 하나의 쿼리를 실행 파티 (회사, 종업원, 협력 업체)의 여러 유형에 대한 데이터를 검색하는 혜택을 제공합니다. 플립 측면에서, 당신은 당신이 실제로 필요한 데이터에 도착하는 추상화의 추가 레이어를 추가하는 데이터베이스의 부하를 증가 (또는 조인 적어도 수) 때 특정 유형에 대한 당신이있는 거 쿼리. 당신의 추상화 너무 멀리 가면, 당신은 가능성이 복잡성은 가독성과 데이터베이스로드에 해가되기 시작하는 것처럼 데이터를 검색하기 위해 여러 쿼리를 실행해야합니다.

    이것은 내가 틀림없이 조금 약한에서 야한다는 영역입니다,하지만 난 응용 계층에서 사용하는 뷰와 미러 추상화가 너무 많은 문제의이을하지 않은 것으로 나타났습니다. 나를 위해 진짜 문제는 항상있는 "어디 데이터 X 생활의 조각"나는 (이 중 항상 시스템에 새로운 개발자를위한 직관적이지의) 직접 데이터 소스를 읽고 싶은 경우.

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

    2.(엔티티 스키마 일명) 파티 모델 뒤에 아이디어는 스키마없는 데이터베이스의 확장 성 혜택의 일부를 활용하는 데이터베이스를 정의하는 것입니다. 파티 모델은 개체 당 하나 개의 테이블에 반대, 파티 형식의 레코드로 해당 엔티티를 정의하여 해당 작업을 수행합니다. 결과는 거의 테이블과 데이터 그 점포의 의미 론적 의미에 대한 약간의 지식이 매우 정상화 데이터베이스입니다. 모든 지식은 코드에서 데이터 액세스에 푸시됩니다. 스키마가 변경되지 않습니다 때문에 파티 모델을 사용하여 데이터베이스 업그레이드가 없음을 최소화합니다. 그것은 본질적으로 어떤 멋진 이름을 가진 영광 키 - 값 쌍 데이터 모델 구조와 추가 속성의 커플입니다.

    (엔티티 스키마 일명) 파티 모델 뒤에 아이디어는 스키마없는 데이터베이스의 확장 성 혜택의 일부를 활용하는 데이터베이스를 정의하는 것입니다. 파티 모델은 개체 당 하나 개의 테이블에 반대, 파티 형식의 레코드로 해당 엔티티를 정의하여 해당 작업을 수행합니다. 결과는 거의 테이블과 데이터 그 점포의 의미 론적 의미에 대한 약간의 지식이 매우 정상화 데이터베이스입니다. 모든 지식은 코드에서 데이터 액세스에 푸시됩니다. 스키마가 변경되지 않습니다 때문에 파티 모델을 사용하여 데이터베이스 업그레이드가 없음을 최소화합니다. 그것은 본질적으로 어떤 멋진 이름을 가진 영광 키 - 값 쌍 데이터 모델 구조와 추가 속성의 커플입니다.

    장점 :

    단점 :

    관계형 데이터베이스의 파티 또는 개체 스키마를 고려하고 있다면, 당신은 아마없는 NoSQL 데이터 저장소, 빅 테이블 또는 KV 상점 같은 다른 솔루션을 살펴 보셔야합니다. 이 운동을 개척 등 MongoDB를, DynamoDB의, 그리고 카산드라와 같은 대규모 배포 및 견인에 거기 훌륭한 제품이 있습니다.

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

    3.나는 1980 년대 초에 이러한 아이디어를 구현하는 팀의 일원이었을 때 사람들은 아직 발명되지 않았기 때문에, 그것은 ORM의 우리의 선택을 제한하지 않았다.

    나는 1980 년대 초에 이러한 아이디어를 구현하는 팀의 일원이었을 때 사람들은 아직 발명되지 않았기 때문에, 그것은 ORM의 우리의 선택을 제한하지 않았다.

    특정 프로젝트가 가장 설득력 교정 -의 개념 내가 (이 확실히 당시)는 "혁신적인"아이디어의 본의 하나로서 나는, 그 아이디어에 모든 시간을 다시 떨어질 것입니다.

    그것은 아무것도 당신을 강제로. 그리고 그것은 어떤에서 당신을 멈추지 않는다 (어떤 실수에서, 내 말은). 자신의 정보 모델을 정의하는 사람은 당신입니다.

    모든 당사자는 공통적 인 특성을 많이 가지고있다. 그들은 이름과 같은이 사실은 (우리는 그 "signaletics을"라고도 함). 사실은 교장 / 차 위치 "주소"라고 그들이 것을. 그들은 모두가 사업 '계약에서, 어떤 의미에서, 관련된 사실.

  4. ==============================

    4.렌 실버스톤과 폴 애그뉴에 의해 데이터 모델링에 대한 보편적 인 패턴 - 이것은 내가 데이터 모델 리소스 예약 볼륨 3을 읽는 것이 좋습니다, 광대 한 주제입니다.

    렌 실버스톤과 폴 애그뉴에 의해 데이터 모델링에 대한 보편적 인 패턴 - 이것은 내가 데이터 모델 리소스 예약 볼륨 3을 읽는 것이 좋습니다, 광대 한 주제입니다.

    난 그냥 내 사본을받은 그것은 꽤 좋은 - 그것은 하이브리드 콘텐츠 역할 패턴 등을 포함한 데이터 모델링에 많은 접근 방식에 대한 간과을 제공합니다. 그것은 모든 방법에 대한 자세한 장단점이 있습니다.

    모든 장점과 단점 모델 파티 관계 및 역할에 대한 방법의 과다가있다. 답변으로 받아 들여졌다 질문은 '파티 모델'의 한 인스턴스를 포함한다.

    예를 들어, 많은 접근 방식에 등 "직원", "프로젝트 매니저"와 같은 개념은 당사자가 특정 컨텍스트 내에서 재생할 수있는 역할이다. 내가 집에 도착하면 당신에게 더 나은 분석을 제공하기 위해 노력할 것입니다.

  5. ==============================

    5.나의 이해에서 간단한 이야기로 : 파티 모델링 유연성을 제공하고 (T-SQL ... 가입과 같은) 구현하기 위해 더 많은 노력이 필요합니다. 나는 또한 그 포인트 싶어 "파티 모델링 (직렬화 / 일반화)를 사용하여 당신에게 다른 테이블에 FK-관계를 가지고 할 수있는 기능을 제공합니다." 예를 들면 : 사용자 테이블에 일반화 된 다른 유형의 사용자 (관리자, 사용자, ...) 생각, 당신은 당신의 권한 테이블에 사용자 ID를 가질 수 있습니다.

    나의 이해에서 간단한 이야기로 : 파티 모델링 유연성을 제공하고 (T-SQL ... 가입과 같은) 구현하기 위해 더 많은 노력이 필요합니다. 나는 또한 그 포인트 싶어 "파티 모델링 (직렬화 / 일반화)를 사용하여 당신에게 다른 테이블에 FK-관계를 가지고 할 수있는 기능을 제공합니다." 예를 들면 : 사용자 테이블에 일반화 된 다른 유형의 사용자 (관리자, 사용자, ...) 생각, 당신은 당신의 권한 테이블에 사용자 ID를 가질 수 있습니다.

  6. ==============================

    6.잘 모르겠지만, 일반화 전문화 패턴의 특별한 경우처럼 파티 모델 소리. "일반화 전문 관계형 모델링"을 검색하면 몇 가지 흥미로운 기사를 발견한다.

    잘 모르겠지만, 일반화 전문화 패턴의 특별한 경우처럼 파티 모델 소리. "일반화 전문 관계형 모델링"을 검색하면 몇 가지 흥미로운 기사를 발견한다.

  7. from https://stackoverflow.com/questions/716549/what-are-the-principles-behind-and-benefits-of-the-party-model by cc-by-sa and MIT license