답변

5

전체 데이터베이스에 대해 수행하십시오. 모든 테이블에 대해 데이터 모델을 만들면 관계를 탐색 할 때 이점이 없습니다.

Subversion과 같은 소스 컨트롤을 체크 아웃/병합하는 경우 디자이너가 Subversion이 병합하려고하는 정도까지 XML을 사용합니다. 이 경우 대개 매번 전체 모델을 재생성하거나 수동으로 병합해야합니다.

1

하나 ...

당신은 테이블의 많은 양이있는 경우 그것들을 스키마 나 다른 범주적인 방법으로 분해 할 수는 있지만, 그 아이디어는 결코 테이블 당 데이터 모델이 아니라고 말할 수 있습니다 ...

-1

대용량 데이터베이스가있는 경우 데이터베이스 테이블을 분류해야한다고 생각합니다. 하지만 ado.net 엔티티 프레임 워크의 기본 요구 사항 인 각 테이블에 대한 클래스를 만들어야합니다.

데이터베이스를 업데이트하면 데이터 모델을 업데이트 할 수 있습니다.

먼저 데이터베이스를 디자인하고 ado.net 엔터티 모델을 만듭니다.

+0

각 테이블에 대한 클래스를 만드는 것은 ADO.NET EF의 요구 사항이 아닙니다. 사실, 단일 엔티티는 둘 이상의 테이블에 맵핑 될 수 있습니다. –

1

데이터베이스 스키마와 독립적으로 데이터의 개념/개체 모델을 디자인 한 다음 개념 모델과 데이터베이스 스키마를 가장 잘 관련시키는 매핑을 만듭니다. 모든 테이블은 아니지만 대부분의 테이블을 사용할 수 있습니다. 테이블에 일대일 매핑을 원할 경우 LINQ-to-SQL을 고려하는 것이 좋습니다. 작업하기 쉽기 때문입니다.

2

관련 테이블에 엔터티 데이터 모델을 사용합니다. 데이터베이스의 크기에 따라 약 20 개 또는 25 개 미만의 테이블이있는 경우에만 하나의 모델을 생성합니다. 각 모델에는 만들려는 EntityConnection 객체가 있기 때문에 모든 테이블에 대해 개별 모델을 만드는 것은 약간 비쌉니다.

5 ~ 15 개의 테이블이 있으면 모델을 상당히 잘 유지할 수 있습니다. 내 주요 결정 요인은 기능입니다. 엔지니어링 응용 프로그램을 작성합니다. 예를 들어 약 6 개의 구조용 스틸 구성 요소 테이블이 있습니다. 그것들은 모두 하나의 모델입니다. 공통 엔지니어링 특성을 공유하므로 이러한 특성을 조작하는 데 필요한 코드를 다시 사용하는 것이 더 쉽습니다.

즉, 모델을 인스턴스화하고, 객체를 만들고, 공통 코드 파일 내에서 객체를 조작/구성 할 수 있습니다. 데이터베이스에 적용 할 필요가있는 변경 사항은 매우 효율적으로 수행 할 수 있습니다.

결론은 기본 개체에 대한 필요성과 사용 빈도를 결정합니다. 계속해서 하나 또는 두 개의 테이블을 업데이트하려는 경우 해당 모델 내에 30 개의 다른 비 관련 테이블이있는 것은 이해가되지 않습니다. 적은 수의 테이블이 자주 사용되는이 시나리오에서는 이러한 오브젝트의 콜렉션을 작성하고 콜렉션을 조작하고 적절한 시간에 데이터베이스를 갱신하는 것이 좋습니다.

메모리 조정은 디스크 입출력을 수행하는 것이 훨씬 저렴합니다. 이것은 프레임 워크에 대한 필자의 생각이며 결코 그런 전문가가 아닙니다.

1

위의 답변 외에도 EF 모델은 실제로 개념 수준에 있음을 명심하십시오. 데이터베이스의 구조와 관련 될 필요는 없으며 전체 데이터베이스를 나타내지 않아도됩니다.