Die Logik für die Erstellung einer Teilnahme-system in c# und einer Datenbank(Hilfe benötigt mit dem db-schema)
Habe ich zum erstellen einer Anwesenheits-management-system der Hochschule..
.die Anforderungen sind..
es gibt 6 Fächer
- jedes Thema hat eine Tabelle für jeden Monat..
- jeder Klasse durchgeführt wird aufgezeichnet und nummeriert von 1 bis n..und das vorstellen der Kandidaten gegeben werden, die zählen, wenn vorhanden...
- am Ende eines jeden Monats, insgesamt Klassen genommen von allen 6 Probanden aufsummiert...und insgesamt Klassen besucht, die von jedem einzelnen Schüler zusammengefasst, und ein Prozentsatz berechnet wird...(insgesamt präsentieren Klassen)/(Gesamtzahl der Klassen )*100...
- es sind 120 Studenten...
mir bitte helfen, erstellen Sie eine effiziente Methode zum erstellen der Datenbanken...
Hinweis....
die Anwendung sollte Ihnen ermöglichen, den Blick durch all die abwesenden Klassen, die er nicht an Referenz..(also jedes abwesende Klasse aufgenommen werden müssen)
Meinem..versuche:
- einer Weise, die ich versuchte, war:
erstellen von Tabellen für jedes Thema...dann
6 Tabellen erforderlich
Nachteile:
*jeden Tag muss eine Spalte und die Kopie der 6 Tabellen erstellt werden soll jeden Monat.
ich.e 6 sub*12 Monate =72 Tabellen jedes Jahr
auch ein extra-Klassen ergriffen werden können pro Motiv...so, wenn ein Thema zweimal am Tag,3 Fälle kommen--> Geschenk für beide,fehlt für beide,vorhanden für nur eine..*
2..die zweite Methode, die ich ausprobiert habe ist:
erstellen Sie eine Tabelle für jeden Schüler mit den gleichen db-schema ..(mit Themen wie Spalten )
con:
12 Schüler benötigen 120 Tabellen
😛
Irgendwelche kluge Ideen, Jungs...das würde wirklich helfen, wenn Sie mir Ideen, wie konstruieren Sie ein db-schema für diese Art der Anwendung.......
danke.....
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schüler-Tabelle:
Klassen Tabelle:
Schüler zu Klassen Tabelle:
Magnettafel:
PK heißt Primärschlüssel. FK bedeutet Foreign Key (es Mitarbeiter, die den Primärschlüssel in anderen Tabellen).
Den Studenten zu Probanden Tabelle verbindet die Schüler mit Ihren Themen. Für jedes Fach wird ein Schüler zugewiesen ist, fügen Sie einen Datensatz für die Studierenden zu Themen Tabelle. Für jedes Datum, das ein Schüler ein bestimmtes Thema, fügen Sie einen einzelnen Datensatz der Magnettafel.
Zunächst, Sie definitiv nicht brauchen, um doppelte Tabellen für jeden Monat oder student. Das ist madenss.
Berechnen Sie den Monat aus dem Datum, also nur die Speicherung eines Datums löst dieses.
Hier ist meine erste Reaktion.
Müssen Sie die Tabellen, für Studenten, Themen, Anmeldungen, Kurse und Anwesenheitszeit.
Registrierungen Tabelle:
Klassen-Tabelle (verwenden Sie einen anderen Namen) zeigt alle gültigen Kurs Datum (erforderlich für die Teilnahme berechnen %):
Magnettafel:
(ändern Sie den Namen entsprechend Ihren Konventionen)
Diese Weise die Teilnahme enthält einen Datensatz für jeden Auftritt von jedem Schüler in jeder Klasse. Sie können bestimmen, auf welche Klassen jeder Schüler verpasste in jedes Thema durch SQL-Abfragen.
Alle die Logik, die Sie beschrieben sind, können behandelt werden mit dieser Struktur, es sei denn, ich habe etwas verpasst. Halten Sie Ihre Daten Modell sauber und lassen Ihren code die Arbeit machen.
Classes.ID
sollte ersetzt werden durch die (natürlichen) Schlüssel(subject_ID, class_date)
. Diese WeiseAttendance
können und sollten ReferenzRegistration
, sonst wäre es möglich, dass ein Schüler eine Klasse besuchen, für die Sie nicht registriert.Hier einige SQL-DDL basiert auf dem @nycdan die Antwort, aber mit natürlichen Schlüssel eher als künstliche (Ersatzmutter?) Schlüssel, da dies verbessert die referenzielle Integrität, d.h.
Attendance
können und sollten ReferenzEnrollment
zu gewährleisten Besuch nicht protokolliert werden für einen Schüler, der nicht registriert ist auf Kurs. Habe ich auch geändert, ein paar Namen. Ich bin nur mit den wichtigsten Parametern. :