문제

저는 ASP.NET을 처음 접했지만 프로그래밍은 처음입니다.현재 사이트를 PHP/MySQL에서 ASP.NET(3.5)/SqlServer로 마이그레이션하고 있습니다.나는 사이트가 출시된 이후로 여기에 숨어 ​​있었기 때문에 여러분 중 한 명(또는 그 이상)이 나를 도와줄 수 있다고 확신합니다.시나리오는 다음과 같습니다.

이것은 훈련 부서 사이트와 부서입니다.테이블에 강좌 카탈로그가 저장되어 있습니다. course.각 과목에는 많은 선수과목이 있을 수 있습니다. 예를 들어 C의 선수과목은 A와 B입니다.나는 일반적으로 이것을 쉼표로 구분된 열로 저장합니다. course 아니면 별도의 테이블에 course_prereq 또는 course_course 재귀 관계로.이 부분은 내가 할 수 있다.

그러나 비즈니스 규칙에 따르면 각 과정에는 여러 전제 조건 세트가 있을 수 있습니다.예를 들어, N 필요하다 A, B 그리고 C, 또는 N 필요하다 X 그리고 Y.이것이 내가 붙어있는 곳입니다.

이전에는 이 정보를 행의 열에 저장했습니다. N ~처럼 A,B,C|X,Y, ID를 PHP 2D 배열로 구문 분석하고 해당 배열에 ID가 있는 모든 행에 대한 두 번째 쿼리를 제출한 다음 PHP를 사용하여 해당 행을 해당 그룹으로 분리했습니다.이 모든 처리가 완료되면 전제 조건 그룹이 다음과 같이 웹 페이지에 별도의 테이블로 표시됩니다.

| A | A's information goes here |
| B | B's information goes here |
| C | C's information goes here |
- - - - - - - OR - - - - - - - -
| X | X's information goes here |
| Y | Y's information goes here |

ASP.NET을 사용하여 이 작업을 어떻게 수행합니까?

도움이 되었습니까?

해결책

보관할 테이블 추가 Prerequisite Sets.이 테이블에는 세트 ID와 세트의 각 코스에 대한 코스 테이블에 대한 키가 포함되어 있습니다.테이블에는 특정 세트 ID에 대한 여러 행이 있을 수 있으므로 기본 키는 세트 ID가 됩니다. ...을 더한 강좌 ID입니다.그럼 당신의 course_prereq 표에서는 코스를 다양한 전제 조건 세트와 연관시킵니다.안 OR 관계는 거기에서 가정될 수 있다. ANDs는 세트 자체에서 시행됩니다.

다른 팁

각 전제조건을 FK하는 PrerequisiteSet이라는 테이블이 있습니다.그런 다음 Course 및 PrerequisiteSet에 FK되는 Course_PrerequisiteSet 다대다 테이블이 있습니다.대부분의 경우 Course_PrerequistieSet에는 항목이 하나만 있지만 둘 이상이면 OR 관계가 됩니다.

위의 두 답변 모두 매우 도움이 되었습니다.제안된 두 개의 데이터베이스 테이블 대신 단 하나의 데이터베이스 테이블을 사용하게 되었습니다.테이블에는 course_id, prereq_id, 그리고 set_id, 모두 함께 기본 키를 형성합니다.

ASP.NET 페이지에서는 반복기를 사용하여 강좌의 전제 조건 집합을 반환하는 sqldatasource 저장 프로시저와 두 번째 sqldatasource 저장 프로시저에서 개별 전제 조건 정보를 읽는 해당 반복기 내부의 그리드뷰를 반복합니다.이와 같이:

RepeaterSqlDataSource (세트 ID 반환)
Repeater
. . . GridViewSqlDataSource (세트의 각 prereq_id에 대한 코스 정보를 반환합니다.
. . . GridView

비슷한 시나리오를 보고 있는 다른 사람에게 도움이 되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top