Question

Je suis nouveau à ASP.NET, mais pas à la programmation. J'émigre notre site actuel de PHP / MySQL pour ASP.NET (3.5) / SqlServer. J'ai tapi ici depuis le lancement du site, donc je suis convaincu que l'un (ou plus) vous pouvez me aider. Voici le scénario:

Ceci est un site du département de la formation et du département. a un catalogue de cours stocké dans la table course. Chaque cours peut avoir plusieurs cours préalables, par exemple, A et B sont des conditions préalables pour C. Je normalement stocker ce soit comme une colonne délimitée par des virgules dans ou dans une course_prereq table séparée ou course_course comme récursif N relation. Cette partie, je peux le faire.

Cependant, les règles métier exigent que chaque cours peut avoir plusieurs ensembles de conditions préalables. exemple Fore, nécessite A B, et C X, ou nécessite Y et A,B,C|X,Y | 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 |
. C'est là que je suis coincé.

Auparavant, je stockées ces informations dans une colonne pour la ligne <=> comme <=>, analysé les ids dans un tableau 2D PHP, soumis une seconde requête pour toutes les lignes dont l'ID est contenue dans le tableau, puis utilisé PHP pour séparer ces lignes dans leurs groupes respectifs. Une fois que tout ce traitement est fait, les groupes de pré-requis sont affichés sous forme de tableaux séparés sur la page Web, comme suit:

  

<=>

Comment pourrais-je accomplir cela en utilisant ASP.NET?

Était-ce utile?

La solution

Ajouter une table à tenir Prerequisite Sets. Cette table contient un identifiant de jeu et la touche retour à la table des cours pour chaque cours dans l'ensemble. Le tableau peut avoir plusieurs lignes pour un ID de jeu donné, afin que votre clé primaire sera l'ID du jeu plus l'ID de cours. Ensuite, dans votre table vous rapportez cours course_prereq aux différents ensembles de pré-requis. Une relation peut y être OR suppose que les s sont appliquées AND dans les themsevles ensembles.

Autres conseils

Avoir une table appelée PrerequisiteSet que chaque prereq à FKs. Ensuite, un Course_PrerequisiteSet plusieurs à plusieurs table au cours et FKs PrerequisiteSet. La plupart du temps, il n'y aura une entrée dans Course_PrerequistieSet, mais s'il y a plus d'un, alors il sera une relation OR.

Les deux réponses ci-dessus ont été très utiles. Je me suis retrouvé avec une seule table de base de données au lieu de deux suggéré. La table contient une course_id, prereq_id et set_id, qui forment ensemble la clé primaire.

Dans la page ASP.NET, j'utiliser un répéteur à boucle sur la SqlDataSource procédure stockée qui retourne les ensembles préalables d'un cours et un gridview intérieur de ce répéteur qui lit les informations à partir d'une condition individuelle seconde SqlDataSource procédure stockée. Comme ceci:

  

RepeaterSqlDataSource (rendement Ids)
    
Repeater     . . . GridViewSqlDataSource (retourne les informations de cours pour chaque prereq_id dans le jeu
    . . . GridView

Espérons que cela est utile à tous ceux qui cherchent d'autre à un scénario similaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top