약 20 개의 데이터 열과 대략 11,000 개의 레코드가있는 원본 플랫 파일이 있습니다. 각 레코드 (행) 정보 등분할 테이블의 열은 제약 조건을 따르는 열에 따라 여러 테이블로 구성됩니다.
같은patientID, PatietnSSN.PatientDOB, PatientSex, PatientName, Patientaddress, PatientPhone, PatientWorkPhone, PatientProvider, PatientReferrer, PatientPrimaryInsurance, PatientInsurancePolicyID이 포함되어 있습니다.
제 목표는이 데이터를 SQL 데이터베이스로 이동하는 것입니다.
나는 데이터 모델
와 아래로 데이터베이스를 만들었습니다 참조 무결성을 보장하기 위해 제약 조건이되어야합니다. 내 접근 방식은 어떻게해야합니까? 나는이 모든 잘못에 대해 이야기 할 것인가? 지금까지 SSIS를 사용하여 데이터를 단일 스테이징 테이블로 가져 왔으며 이제는 해당 스테이징 테이블에 11k 더하기 레코드를 쓰는 방법을 알아야합니다 ... 스테이징 테이블의 레코드 1은 레코드 하나를 생성합니다 거의 모든 테이블에서 "제공자"및 "리퍼러"와 같은 1 대 다수 관계가있는 제공자를 제외하고 하나의 제공자는 많은 환자와 연결되지만 한 명의 환자는 하나의 제공자 만 가질 수 있습니다.
나는 이것을 충분히 설명하기를 희망한다. 도와주세요!
가 고려 인간 :-)에게 이니까 SQLServer에서 저장 프로 시저/함수 지원을 조사합니다. 다음과 같은 몇 가지 절차를 작성할 수 있습니다. 메인 레코드를 삽입하고, id를 반환 한 다음, 반환 된 ID에 대한 참조가있는 관련 레코드를 삽입하십시오. –
정말 필요하지 않다면 appt/providers 참조를 제거합니다. 순환 종속성으로 인해 추가 작업이 발생할 것입니다. 또한 DB를 업데이트하는 데 사용할 도구는 무엇입니까? 원시 SQL 또는 프로그래밍 언어? 올바르게 모델링 된 경우 많은 ORM이이를 처리합니다. 이 질문을 받았다면 Python으로 스크립트를 작성하거나 익스프레스와 같은 ETL 도구를 사용하십시오. – SteveJ
@ed Orsi는 SSIS 패키지가 어떤 특정 순서로 삽입하지 않을 것이기 때문에이 제약을 위반하지 않을 것입니다. 그래서 어떤 레코드가 첫 번째 두 번째 등을 쓰게 될지를 제어 할 방법이 없습니다 ...? –