은 분명히 내가 DDD는 유용성에/CR을 EAV와 유사 말하는 잘못,하지만 지금까지 볼 수있는 유일한 차이는 아닌 세 개의 테이블을 조인과 조인의 많은 물리적 테이블이 많은 각 엔티티에 대한 구축이다. 인해 DDD의 이해 나의 부족에DDD 값 개체 : 엄청난 양의 SQL 조인없이 엔티티 개체를 유지하는 방법?
이 있어야합니다. 어떻게 물리적으로 중요한 조인하지 않고 데이터베이스에 이러한 개체를 저장 않으며 합병증 데이터를 가져올 때? 난 당신이 단순히 저장소에 공급 개체를 만들 수 있습니다 알고 있지만, 마이크로 소프트 SQL 서버 통합 서버는 사용자 정의 C#을 개체와 프레임 워크를 사용하는 것처럼 도구를 양성하기는 어렵습니다. 어쩌면 그게 내 질문이어야합니다, 당신은 어떻게 DDD ASP.NET C# 프레임 워크를 Microsoft SQL Server Integration Services 및 Report Services와 함께 사용합니까? LOL.
EAV/CR 데이터베이스에서 공급 업체, 고객, 구매자, 대표, 회사, 관리인 등 사람의 유형에 따라 서로 다른 클래스로 단일 Person 테이블을 설정할 수 있습니다. 세 개의 테이블, 몇 개의 조인, 속성 우리가 삽입하기 전에 항상 유효성 검사를하는 문자열입니다. MVC의 ModelValidation처럼 객체가 값을 허용하지만 유효 할 때까지 지속되지 않습니다. 표준 관계형 모델에서
, 우리는 도시와 같은 중복 데이터 유형에 혼합, 기업의 각 유형의 테이블을 생성하는 데 사용됩니다. 도메인 기반 설계를 사용하여 는, 우리는 필요에 따라 각 개체의 유형, 중첩 된 객체 ValueObject의 각 유형에 대해,보다 중첩 된 객체를 나타내는 객체를 사용합니다. 필자가 이해할 수 있도록, 이것은 엔티티의 각 종류에 대한 테이블과 각 종류의 정보 집합 (값 객체)에 대한 테이블을 생성합니다. 이 모든 테이블을 사용하면 많은 조인을 볼 수 있습니다. 또한 각각의 새로운 접촉 유형에 대해 실제 테이블을 생성하게됩니다. 분명히 더 나은 방법이 있으므로 개체를 데이터베이스에 유지하는 방법이 올바르지 않아야합니다.
내 공급 업체는 다음과 같습니다
public class Vendor {
public int vendorID {get; set;}
public Address vAddress {get; set;}
public Representative vRep {get;set;}
public Buyer vBuyer {get; set;}
}
내 역할 :
public class Buyer {
public int buyerID {get; set;}
public Address bAddress {get; set;}
public Email bEmail {get; set;}
public Phone bPhone {get; set;}
public Phone bFax (get; set;}
}
우리가 정말 Vendor.vBuyer.bPhone.pAreaCode 같은 것들을 참조합니까? 우리가 Vendor.BuyerPhoneNumber를 참조하고 저장하고,이 부분들에 대한 별명과 거의 비슷한 객체를 만들 것이라고 생각합니다. Vendor.Address1, Vendor.Address2, Vendor.BuyerPhoneNumber ...