헐 (Hull)이라는 일반 개체 (테이블)가있는 응용 프로그램이 있습니다. 테이블의 각 선체는 고유합니다.
엔티티 관계 복수 1 : 1의
3 개의 선체가있는 다른 개체가 있지만, 특히 Port_Hull, Center_Hull 및 Starboard_Hull입니다.
일대 다 관계를 만들지 않고 각각에 대해 일대일 관계를 만들려고했지만 헐과 선박을 일대일로 연결하지 않으면 수많은 오류가 발생합니다.). 내가 어떻게 이것에 대해 어떤 생각을하는지, 아니면 개념을 포기하고 혈관 관계를 일대일 관계로 만들어야하고 항상 세 가지 항목이있는 목록을 처리해야합니까?
p.s. 고유 한 식별자를 사용하면 많은 사용자가 연결이 끊긴 상태에서 레코드를 추가 할 수 있습니다.
선체 표
- HullID의 고유 식별자 (기본 키)
- 플러스 선체 데이터 필드의 무리
선박 표
- VesselID의 고유 식별자 (기본 키)
- MainHullID uniqueidentifier (
접근법 하나의 문제 (제 생각 엔)는 모든 선박이 3 개의 선체를 모두 가지고있는 것은 아닙니다 (원래의 게시물을 단순화했습니다).
일부 선박은 단일 선로이며 Mainhull 만 있고 일부 선박은 쌍동선이며 PortHull 및 StarboardHull이 있습니다.
내가 선체 테이블에 대한 기본 키 VesselID 필드와 외장 (M, P & S)에 대한 1 char 필드를 추가해야하는지에 대해 궁금해합니다. VesselID, 그럼 코딩 관계를 다룰 것인가? – Evan
헐 (Hull)에 대한 대리 HullID를 유지하고 싶습니다. 복합 PK를 원하지 않습니다. 대신 VesselID와 M, P, S char 필드에 대해 고유 한 제약 조건을 만듭니다. 즉, 내 대답에 HullType을 사용했습니다. 그런 식으로, 당신은 어떤 종류의 선체라도 하나의 선체를 갖도록 보장합니다. 이제 특정 유형의 선체가 특정 선박에 대해 의미가 있습니다. 다른 질문은 코드에서 간단하게 해결할 수 있습니다 (db 모델에서는 가능하지만 복잡한 경우). 데이터베이스 - 당신은 객체 - 관계 매핑 도구를 사용하여 고려해 봤나? NHibernate? – mdma
LOL - VisualStudio 엔티티 프레임 워크 도구를 사용하려고합니다. 이상한 오류를 줄이고 일렬의 열거자를 인식하지 못하게하려고합니다. 닷넷에 대한 NHibernate는 표준 프레임 워크에 기능을 추가합니까? – Evan