2009-08-28 3 views
0

저는 머리 부분에 도메인 모델이 있는데, SubSonic 호환 DB 스키마를 구축하는 데 문제가 있습니다.이 예제에서 어떻게 실행하는지 알려 주시면 정말 도움이 될 것입니다. 3 엔티티 (SqlServer 또는 MySql이 나에게 중요하지 않음)SubSonic 시작에 문제가 발생했습니다.

- 교육 대상 (예 : 삼각법, 미적분)을 나타냅니다. Props- 이름

기술 - 특정 질문을 나타내는 - 운동을 해결하기 위해 사용되는 기술 (코사인의 예를 들면, 법률, 피타고라스의 정리) Props- 이름, FatherSubject

운동를 나타내는. 소품 - 주제, 기술 (연습 문제 해결에 사용 된 것), 난이도 (열거, 중간, 어렵게), 답변 (int).

그래서 : Many to Exercise -> 제목, 운동 -> 기술 일대 다 - 주제 -> 기술. 그리고 난이도는 enum입니다.

일단 문서를 작성하려면 문서 작성에 참여해야합니다.

답변

1

가장 쉬운 방법은 다 대 다 관계 사이에 브리지 테이블을 구축하는 것입니다. (Exercise_Techniques를 통해) 많은 기술 많은 기술에

Table: Subject 
Columns: Subject_ID (PK) 
     Name (UK) 

Table: Technique 
Columns: Technique_ID (PK) 
     Name (UK) 
     Subject_Name (FK) 

Table: Exercise 
Columns: Exercise_ID (PK) 
     Difficulty_ID (FK) 
     Question_Text 
     Correct_Answer_ID (FK) 

Table: Difficulty 
Columns: Difficulty_ID (PK) 

Table: Exercise_Answer 
Columns: Answer_ID (PK) 
     Exercise_ID (FK) 
     Answer_Text 

Table: Exercise_Technique 
Columns: Exercise_Technique_ID (PK) 
     Exercise_ID (part of UK, FK) 
     Technique_ID (part of UK, FK) 
  • 주제
  • 운동 많은 답변 다른 테이블에 대한 답변을 분리하고 올바른을 사용하지 않음으로써

-

  • 운동 Answer ID를 int (2 차 답안)로 사용하면 answer_id 값과 exercise.correct_answer_id를 비교하여 답을 무작위로 추출하고 올바른 답을 알 수 있습니다.

  • +0

    덕분에, 나는 다리 테이블 컬럼의 규칙 인 경우 [table_name1] [ID가], [table_name2] [ID] 또는 [name_of_primary_key1], [name_of_primary_key2], 또한 무슨 일이 음속 않습니다 궁금해 이 규칙을 사용 하시겠습니까? 모든 doc는 "그것은 당신을 위해 어떤 마법을 돌릴 것입니다"라고 말합니다 ... –

    +0

    위의 것들 중 어느 것도 SubSonic에만 국한되지 않습니다. 관계가 유효한 한, SubSonic은 클래스와 코드를 생성 할 수 있습니다. 단순한 데이터베이스 디자인입니다. 일관성 있고 다른 사람들에게 다소 이해가된다면 열의 이름을 지정하는 것이 중요하지 않습니다. 필자는 PK 이름을 tablename_id로 지정한 다음 FK에 동일한 필드 이름을 사용하는 것을 선호합니다 (표시 할 fieldname의 접두사 인 correct_answer_id와 같은 고유 한 이름이 아닌 경우). –

    1

    나는 SimpleRepository를 사용하여 말하고 싶지만 : http://www.subsonicproject.com/docs/Using_SimpleRepository

    나는 당신이 필요로하는 테이블/제약 조건을 생성합니다 ManyToMany 협회에 대한 자동 마이그레이션로 업데이트하려고 해요. 나는 그것을 지금 보류하고있다. 그래서 나는 몇 주간을 필요로한다.

    myname @ gmail을 원한다면 이메일로 코드를 이메일로 보낼 수 있습니다 (마이그레이션없이). you'r 좋은 답변

    +0

    안녕하세요.저는 SimpleRepository에서 관계를 어떻게 처리 할 것인지에 대해 매우 흥미가 있습니다! 브리지 테이블을 만들고 각 객체 defenition과 연결하여 처리되는 속성으로 다른 클래스의 목록이있는 클래스를 가질 수 있습니까? 그것은 (ParentObject의) (parentObject1) 업데이트를 처리하고이 목록을 관리하기 위해 delete 및 update db 명령을 호출합니까? –

    관련 문제