Domanda

Sono nuovo di ASP.NET, ma non per la programmazione. Sto migrando il nostro sito corrente da PHP / MySQL per ASP.NET (3.5) / SqlServer. Sono stato in agguato dal lancio del sito, quindi sono fiducioso che uno (o più) di voi mi può aiutare. Ecco lo scenario:

Questo è un sito dipartimento di formazione e il reparto. ha un catalogo dei corsi memorizzato nella tabella course. Ogni corso può avere molti corsi prerequisito, ad esempio, A e B sono i presupposti per C. che normalmente memorizzare sia una colonna delimitata da virgole course_prereq o in una tabella separata course_course o N come ricorsiva relazione. Questa parte che posso fare.

Tuttavia, le regole di business richiedono che ogni corso può avere più set di prerequisiti. Fore esempio, A richiede B, C e X, o Y richiede A,B,C|X,Y e | 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 |
. Questo è dove mi sono bloccato.

In precedenza, ho conservato queste informazioni in una colonna per fila <=> come <=>, analizzato gli ID in un PHP 2D-array, presentato una seconda query per tutte le righe il cui id sia in tale matrice, PHP poi usato separare le righe nei rispettivi gruppi. Una volta che tutto questo processo è fatto, i gruppi di prerequisiti vengono visualizzati come tabelle separate sulla pagina web, in questo modo:

  

<=>

Come potrei fare questo utilizzando ASP.NET?

È stato utile?

Soluzione

Aggiungere una tabella per contenere Prerequisite Sets. Questa tabella contiene un ID set e di nuovo la chiave per la tabella di corsi per ogni corso nel set. La tabella può avere più righe per un dato ID set, quindi la chiave principale sarà l'ID set di più l'ID del corso. Poi nella tabella course_prereq vi relazionate corsi ai diversi set prerequisiti. Una relazione OR può essere assunto lì perché nessun AND s vengono applicate nei set themsevles.

Altri suggerimenti

Avere una tabella chiamata PrerequisiteSet che FKS per ogni Prereq. Poi hanno un Course_PrerequisiteSet molti a molti tabella che FKS al corso e PrerequisiteSet. La maggior parte del tempo ci sarà una sola voce nel Course_PrerequistieSet, ma se ci sono più di uno, allora sarà una relazione OR.

Sia le risposte di cui sopra sono stati molto utili. Ho finito per usare una sola tabella del database invece dei due suggerito. La tabella contiene una course_id, prereq_id, e set_id, che insieme formano la chiave primaria.

Nella pagina ASP.NET, io uso un ripetitore per un loop all'interno di stored procedure SqlDataSource che restituisce set di prerequisiti di un corso, e una GridView all'interno di quel ripetitore che legge le informazioni prerequisito individuo da una stored procedure secondo SqlDataSource. In questo modo:

  

RepeaterSqlDataSource (rendimenti impostati IDS)
    Repeater
    . . . GridViewSqlDataSource (restituisce informazioni corso per ogni prereq_id nel set
    . . . GridView

Spero che questo è utile a chiunque altro guardando uno scenario simile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top