각 광고 항목이 제품과 연결된 도메인 모델이 있습니다. 제품에 옵션 목록이 있습니다. 각 옵션은 필수 또는 선택적입니다. 사용자는 옵션을 선택하여 광고 항목의 선택 목록에 추가 할 수 있습니다.중복 참조와 기록 데이터
중복을 피하기 위해 먼저 광고 항목의 선택 목록에서 필수 옵션을 제외했습니다. 필수 옵션이 많으므로 모든 광고 항목에 포함시켜야 비 대한 데이터베이스가 생성됩니다.
문제는 제품이 잠재적으로 시간이 지남에 따라 변경 될 수 있다는 것입니다. 한 번 필요한 옵션은 선택 사항이 될 수 있고 그 반대 일 수 있습니다. 완전히 새로운 옵션이 제품에 추가 될 수 있습니다. 이는 광고 항목의 선택 목록의 의미가 주문 당시의 제품 옵션에 따라 달라지기 때문에 초기 아이디어에 문제가 발생합니다.
그럼 어떻게해야합니까?
광고 항목의 선택 목록에 필수 옵션을 포함하면 모델이 간단합니다. 제품에 포함 된 옵션에 대한 스냅 샷을 볼 수 있습니다. 그러나 필요한 옵션에 대한 참조가 모든 광고 항목에 대해 반복되기 때문에 데이터베이스에 너무 많은 비중을 차지했습니다. 이 문제에 대해 걱정해야합니까, 아니면 SQL Server가 일종의 비하인드 압축을 수행합니까?
광고 항목의 선택 목록에서 필수 옵션을 제외해야한다고 생각합니까? 그런 다음 제품에 대한 변경 사항에 대한 기록 데이터를 보관해야합니다. 그런 식으로 주문 당시 제품과 옵션을 다시 만들 수있었습니다. 가능하지만 첫 번째 옵션보다 복잡합니다. 더 많은 CPU주기가 걸릴 것이라고 걱정하지만 아주 자주 열리지 않는 오래된 주문에 대해서는 괜찮습니다. 나는 결코 전에 이것을 할 필요가 없었지만 아마도 그렇게 힘들지 않을 것이다. 이것이 당신이 권장하는 접근법이라면, 시작하는 데 도움이되는 디자인 패턴 등에 대한 몇 가지 지침을 제공해주십시오.