나는 많은 기존의 종이 양식을 대체 ASP.NET 프로젝트에서 일하고 있어요. 요구 사항 중 하나는 사용자가 모든 상태에서 양식을 저장할 수 있다는 것입니다. 즉, 양식을 새로 만들고 즉시 데이터가 없거나 부분 데이터로 양식을 저장할 수 있습니다. 모든 저장시 데이터 유형에 대해 유효성을 검사하고 있지만 필수 필드에 대한 유효성 검증은 사용자가 양식을 완료된 것으로 표시 할 때까지 발생하지 않습니다.nulls 허용 기본값과
데이터베이스 및 도메인 모델에서이 요구 사항을 처리하는 것이 가장 좋은 방법인지 모르겠습니다. 보시다시피 두 가지 옵션이 있습니다 :
- 데이터가 없을 수있는 필드에는 null을 허용합니다. 이것은 "올바른"접근 방식과 같지만 거의 모든 데이터베이스 필드에서 null을 허용해야하며 nullable 유형을 많이 코딩해야합니다. 또한 양식이 마무리되면 필수 필드가 데이터베이스에 적용되지 않습니다.
- 내 비즈니스 오브젝트를 의미있는 기본값으로 채 웁니다. 어떤 경우에는 사용할 수있는 많은 필드 (전부는 아님)에 대해 의미있는 기본값이 있습니다. 이 접근 방식은 나를 "불편하게하는" "마법의 숫자"를 나타냅니다.
어떤 접근 방식이 가장 좋습니까? 아니면 세 번째 방법이 있습니까? 나는 테이블을 나누는 것과 같이 극단으로 갈 의사가 없다.
편집 추가 : 응답을 수락 한 이후부터 조금 더 확장하고 싶었습니다. 테이블 분할에 관심이없는 주된 이유는 일단 프로젝트가 제출되면 양식의 데이터가 레코드 시스템 인 다른 시스템의 데이터를 생성하는 데 사용된다는 것입니다. 이 시점에서 원래의 양식 데이터는 수정되거나보고에 사용되지 않을 것입니다.
두 세트의 테이블을 사용하십시오. 하나는 불완전한 양식 용이고 하나는 완성되고 검증 된 양식 용입니다. 절대적으로 필요한 경우가 아니면 유효성이 검증 된 양식의 테이블에 널 (null)을 허용하지 말고 가능하면 적게하십시오. –