2012-09-17 4 views
1

SQL Server DB를 사용하는 .NET 프로젝트를 시작했습니다. 데이터베이스에 모든 테이블, SP 등을 설치하는 스크립트가 제공되었지만 데이터는 제공되지 않았습니다.DB 시드 전략

내 초기 충동은 DB에 들어가 몇 명의 사용자를 설정하기 위해 더미 데이터를 수동으로 입력하는 등의 방법으로 응용 프로그램을 사용할 수있게되었습니다. 그러나 레코드를 추가 할 때마다 외래 키 제약 조건이 생깁니다. 불행하게도 나는 당신에게 스키마를 보여줄 수는 없지만 이런 상황에 대해 내가 따라야 할 일반적인 전략은 무엇인가?

답변

1

FK가 진행중인 경우 모든 '마스터'테이블에 데이터를 입력해야합니다. 그런 다음 하위 테이블이나 세부 테이블에 데이터를 입력 할 수 있습니다.

예를 들어 Orders 테이블과 Customers 테이블이 있고 Orders와 Customers 사이에 FK가 있다고 가정 해보십시오. '마스터 테이블'은 Customers이고 세부 테이블은이 예에서 Orders 테이블입니다. 주문을 할 때 고객을 지정하고 고객이 없으므로 FK 오류가 발생하지 않도록 먼저 몇 명의 고객을 입력해야합니다.

이 예제는 실행중인 문제의 유형에 매우 가깝다고 생각합니다.

+0

입니다. 그러나 순환 의존성이있는 것으로 보이는 부분을 봤습니다. 예를 들어 사용자를 추가하려면 부서 ID를 지정해야하지만 부서를 추가하려면 부서장의 사용자 ID를 지정해야합니다. – Legion

+0

불행히도 데이터베이스 디자인은 나에게 달린 것이 아니며 주어진 내용을 처리해야합니다. – Legion

+0

그래서 모든 사용자는 지정된 부서이고 각 부서는 부서 인 부서의 머리를 가지고 있습니다. 나는 사용자가 여러 부서에있을 수 없다고 가정합니다. 그렇지 않으면 작동하지 않습니다. 여기에 디자인 문제가 있다고 생각합니다. 그러나 그것은 별도의 토론이 될 것입니다. 이 문제를 해결하기 위해 모든 사용자가 입력 될 때까지 사용자 테이블의 DepartmentID 열을 null로 설정 한 다음 nullable로 되돌릴 것입니다. –