2010-12-08 2 views
1

많은 관계로 많은 조작하는 것은 우리가 세 개의 테이블어떻게 구현하고 ASP.NET

을했다고 가정 해

코스 - 테이블

------------------ 
ID | CourseName 
------------------ 
1 | C++ 
2 | Java 
------------------ 

교사 - 테이블

----------------------- 
ID | TeacherName 
----------------------- 
1 | Professor 1 
2 | Professor 2 
----------------------- 

CourseTeacher - 테이블

---------------------------- 
ID | CourseID | TeacherID 
---------------------------- 
1 | 1  |  1 
2 | 1  |  2  
3 | 2  |  1 
4 | 2  |  2  
---------------------------- 

이제 AFAK으로 무엇을 할 수 있습니까? 그런 형식으로 레코드를 선택, 삽입, 업데이트, 삭제하는 방법! 검색 지금

는 내 말은, "(.., .., ..) INTO ... VALUES INSERT"간단한을 사용하는 것 또는 간단한은 "SELECT * FROM ..."

을하지만, 동일한 단일 정보 어떻게 든 3 개의 테이블을 포함하는 쿼리를 사용해야합니다 (힌트 : 이미 조인을 사용하고 있지만 여전히 방법 !!)

내 사례에 대한 선택 및 삽입 SQL 문이 매우 유용합니다.

저는이 모델을 사용하지 않으며이 복잡한 것을 어떻게 사용하는지 모르겠습니다. ADO.NET 개체에 SQL 쿼리를 사용하고 있으며 모든 것이 지금까지 제대로 작동합니다! 나는 당신의 질문이 무엇인지 이해하기가 확실하지 않다

+0

okie :하지만 실제로는 귀하의 질문은 무엇입니까? 더 자세히 설명해 주시겠습니까? CourseTeacher 테이블을 업데이트 하시겠습니까? – TalentTuner

+0

잘 작동한다면 왜 변경해야합니까? – GvS

+0

@ Saurabh- 나는 처음에 종이에 디자인을했기 때문에이 구조를 구현했다. 그리고 나는 두 개의 테이블 (코스와 교사)이 필요하다는 것을 알았다. 그런 다음 다 - 대 - 다 관계가 있었기 때문에 연구하고 찾았다. 참조로 작동하는 세 번째 테이블을 만듭니다.하지만 새 코스 나 새 선생님을 추가하려면 업데이트 할 테이블을 모르겠습니다! – lKashef

답변

2

...

가의 각 테이블에 PK가 자동으로 증가한다고 가정하자. INSERT INTO Teacher VALUES 'My New Teacher'

화는 기존의 교사에 기존 코스를 추가 : INSERT INTO Course VALUES 'My New Course' 교사 추가하려면 :

은 물론 추가하려면, 당신은 단지 교사와의 이름을 알고 있다는 것을 의미, 최악의 경우, 을 코스

SELECT ID FROM Teacher WHERE NAME = 'My New Teacher' -> id1 
SELECT ID FROM Course WHERE NAME = 'My New Course' -> id2 
INSERT INTO CourseTeacher(IDCOURSE,IDTEACHER) VALUES (id2,id1) 

사실, 사용자가 교사에 추가 할 코스를 선택하여 응용 프로그램에서, 당신은 이미 당신이 그 (것)들을 포함하는 목록을 얻을 때, 당신은 확실히 이런 짓을했기 때문에 ID를, 무엇을 알아야한다 :

내가 쓴 것이 아닌 경우 유용 할 수 있습니다 6,
SELECT ID, NAME FROM Teacher 
SELECT ID, NAME FROM Course. 

링크는 : http://www.singingeels.com/Articles/Understanding_SQL_Many_to_Many_Relationships.aspx

+0

여기에 첫 번째 답변이옵니다 =) 축하해 주셔서 감사합니다. 힘들지는 않았지만 모든 것이 압도적이었습니다. btw, 확인 내 이름을 ID (비록 조언을 주셔서 감사합니다)를 사용하여 데이터베이스를 처리 .. .. 당신이 어떤 코스를 선택하고 모든 교사와 관련된 하나의 선택 진술로 도려 낼 수 있다면? 참으로 삶이 편해질 것입니다! 코스 LEFT OUTER 조인 CourseID, CourseName AS Course.NAME, TeacherId AS Teacher.ID AS SELECT Course.ID, Teacher.NAME TEACHERNAME AS로부터 CourseTeacher ON Course.ID = – lKashef

+2

덕분에 내가 그런 일을 시도 할 것 :) CourseTeacher.IDCourse INNER JOIN 선생님 ON CourseTeacher.IDTeacher = Teacher.ID 모든 과정과 모든 교사를 제공합니다. INNER JOIN에 대한 확신이 없지만 작동하지 않는 경우 LEFT OUTER JOIN으로 바꾸면 작동합니다. – LaGrandMere

+0

나는 그것을 시도해 볼게 .. + 1 노력을 환영하고 stackoverflow =에 오신 것을 환영합니다 – lKashef

1

은 다른 테이블로 간단합니다.

1 - 삽입, 업데이트, 강좌 및 교사용 테이블에 대한 코드가 있어야한다고 가정합니다. 따라서 동일한 방법을 계속 사용하십시오.

2-하지만 CourseTeacher 테이블 (접합 테이블)의 경우, 실제로 테이블에 부식성 TearcherId 및 CourseId가있을 때이 테이블에 삽입해야합니다.

그래서 CourseTeacher 테이블에 새 레코드를 추가하려면 먼저 courseid 및 teacherid의 각 값을 확인하십시오.

접합부 테이블에서 업데이트하려면 ID 열을 사용하여 updae

+0

감사 Saurabh, 난 그냥 LaGrandMere에서 제공 한 몇 가지 예제 코드가 필요합니다 - 어쨌든 주셔서 감사합니다 =) – lKashef

관련 문제