2009-11-24 12 views
0

하나의 DB 개체에 여러 범주 할당 현재 데이터베이스 개체, "공석"에 "CareerLevels"열 (외래 키)이 있습니다.ASP.net MVC

내 DB의 "CareerLevels"테이블에는 CareerLevels의 동적 양이 있습니다 (예 : 3).

이제 특정 시점에서 CareerLevels에 대한 확인란이있는 페이지가있는 내 공석 만들기 마법사가 있습니다. 공석에 여러 가지 커리어 레벨을 지정할 수 있기를 원합니다. 일반 체크 박스 생성 및 처리에 대해서는 this topic에서 접근 방식을 사용합니다. Y Z

공석 X 가진 careerlevels :

그래서 우리는 같은 것을 갖고 싶어. 여기서 y와 z는 DB 테이블 CareerLevels에 있습니다.

가 난 그냥 표준의 asp.net MVC에서 UsersInRole 같은 외부 키 "Vacancy_id"와 "VacanciesHavingCareerLevel"와 "CareerLevels_id"같은 테이블을 생성하여이 작업을 수행 할 수 있습니다 알고 알려진 방법 뼈대. 이 방법으로 공동 테이블에 공석에 속한 여러 직업 수준을 추적 할 수 있습니다. 코드에서 이것을 가져 와서 사용할 수 있습니다.

DB 개체 (공석)에 속한 여러 옵션을 가진 모든 변수에 대해 이러한 테이블을 사용하게되므로 필자의 경우 10-15 개의 추가 테이블이 생성됩니다.

문제점

I가 아니라 CareerLevels뿐만 아니라 인스턴스 EducationLevels, JobTypes 등을위한. 이렇게하면 VacanciesJobtypes, VacanciesEducationLevels 및 VacanciesCareerLevels와 같은 여러 테이블을 만들어야합니다. 나는 또한 여러 가지 물건을 가지고 있습니다. 내 프로필 EducationLevels을 가지고 있고, Jobtypes, 그냥 생성 된 내 모든 테이블을 의미 등 CareerLevels은 2 배,이 시간 필요가 ProfileCareerLevels 등

진짜 문제

이 오른쪽으로 이동하는 방법 또는인가

내가해야 다른 모델을 채택할까요? 다른 모형 발기인이라면, 이것에 대한 잘 알려진 모델은 무엇입니까?

+0

제거 된 MVC 태그, MVC와 관련 없음 – jfar

답변

2

이것은 단순한 다 대다 관계와 같습니다. "공석"은 또는 그 이상과 관련된 직업 레벨을 가질 수 있습니다. 모델에 다 - 대 - 다 관계를 만들려면 제안한 것처럼 조인 테이블이 있어야합니다.

스키마를 지원하기 위해 추가 테이블이있는 데 문제가 없습니다. 인덱스와 제약 조건이 올바르게 설정되었는지 확인하십시오. 예를 들어, Join 테이블에서 VacancyID와 CareerlevelID를 복합 기본 키로 만들 수 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 그렇게 생각했다. 그러나 약간의 확인을 원했다. 당신이 반응 한 첫 번째 사람 이니까 마지막이에요. @Damir 좋은 사진, 노력에 대한 크레딧 :). – bastijn

2

원래 디자인은 직업 수준이 인 경우 공석이 많고 인 공인을 허용합니다.하나 개 공석 많은 경력 수준를 원한다면

career_model_00

, 다음 외래 키는 다음과 같이 잘못된 테이블은 "많은 측면"에 있어야에 있습니다 이와

career_model_01

문제가 있다는 것을 CARRI 어 수준이 그래서 더 나은 솔루션이 될 것, 단 하나 개의 공석에 속하는하십시오 DB에서 "여러 테이블"을 가지고 아무 문제가 없습니다

career_model_02

. ER 모델을 사용하면 엔터티 (공석, 경력 수준, 교육)를 독립적으로 관리 한 다음 해당 엔터티간에 관계를 할당 (관리) 할 수 있습니다. 조인이 문제로 인식되면 여러 뷰를 디자인하면됩니다.