Frage

Ich bin neu in ASP.NET, aber nicht auf die Programmierung. Ich bin die Migration unsere aktuelle Website von PHP / MySQL zu ASP.NET (3.5) / SqlServer. Ich habe hier gelauert seit der Start der Website, so dass ich bin zuversichtlich, dass ein (oder mehr) von euch kann mir helfen. Hier ist das Szenario:

Dies ist eine Schulungsabteilung Stelle und die Abteilung. hat einen Kurskatalog in der Tabelle course gespeichert. Jeder Kurs kann viele Voraussetzung Kurse aufweisen, beispielsweise A und B sind die Voraussetzungen für C. I normalerweise diese entweder als kommagetrennte Spalte in course oder in einer separaten Tabelle course_prereq oder course_course als rekursive Beziehung speichern würde. Dieser Teil kann ich tun.

Allerdings erfordern die Geschäftsregeln, dass jeder Kurs mehrere Sätze von Voraussetzungen haben. Fore Beispiel erfordert N A, B und C oder N erfordert X und Y. Dies ist, wo ich bin stecken.

Bisher habe ich diese Informationen in einer Spalte für die Zeile N als A,B,C|X,Y gespeichert, analysiert die IDs in eine PHP 2D-Array, vorgelegt wurde eine zweite Abfrage für alle Zeilen, deren ID in diesem Array, dann verwendet PHP die Zeilen zu trennen in ihre jeweiligen Gruppen. Sobald all diese Verarbeitung durchgeführt wird, werden die Gruppen von Voraussetzungen als separate Tabellen auf der Webseite angezeigt werden, etwa so:

  

| 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 |

Wie würde ich erreichen dies mit ASP.NET?

War es hilfreich?

Lösung

Fügen Sie eine Tabelle Prerequisite Sets zu halten. Diese Tabelle enthält eine Reihe ID und Schlüssel zurück in die Kurse Tabelle für jeden Kurs in der Menge. Die Tabelle kann mehrere Zeilen für einen bestimmten Satz-ID, so dass Ihr Primärschlüssel wird die Set-ID sein und der Kurs-ID. Dann in Ihrer course_prereq Tabelle beziehen Sie Kurse zu den verschiedenen Voraussetzung Sätzen. Eine OR Beziehung angenommen es werden kann, weil alle ANDs in den Sätzen themsevles durchgesetzt werden.

Andere Tipps

Haben Sie eine Tabelle PrerequisiteSet: zu FKs zu jedem prereq genannt. Dann haben ein Course_PrerequisiteSet viele zu viele Tabelle, die FKs auf Kurs und PrerequisiteSet. Die meiste Zeit wird es nur in Course_PrerequistieSet einen Eintrag, aber wenn es mehr als eine gibt, dann wird es eine OR-Beziehung sein.

Sowohl die Antworten oben waren sehr hilfreich. Ich landete nur eine Datenbanktabelle anstelle der vorgeschlagenen zwei zu verbrauchen. Die Tabelle enthält eine course_id, prereq_id und set_id, die alle zusammen die Primärschlüssel bilden.

In der ASP.NET-Seite, verwende ich einen Repeater zu Schleife über die SqlDataSource gespeicherte Prozedur, die einen Kurses der Voraussetzung Mengen zurückgibt, und eine Gridview innerhalb dieser Repeater, der die einzelnen Voraussetzung Informationen von einer zweiten SqlDataSource gespeicherten Prozedur liest. Wie folgt aus:

  

RepeaterSqlDataSource (kehrt zurück ids)
    Repeater
    . . . GridViewSqlDataSource (gibt natürlich Informationen für jeden prereq_id im Set
    . . . GridView

Hope Dies ist hilfreich, um jemand anderes zu einem ähnlichen Szenario suchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top