Ich denke über den Datenbankentwurf für ein Studentenregistrierungssystem nach. Erstens akzeptiert das System die Registrierung von jeder Person, deren Daten gespeichert werden. Dann überprüft der Administrator die Formulare und wählt die Studenten aus, die akzeptiert werden sollen. Sollte ich die zwei getrennten Tabellen verwenden, ist die erste die Information der registrierten Person zu speichern und die zweite die Informationen der angenommenen Studenten zu speichern? Oder sollte ich nur eine Tabelle verwenden und ein Attribut (confirmedOrNot) verwenden, um (0 oder 1) zu markieren, ob diese Person akzeptiert wurde oder nicht, wie im folgenden Diagramm gezeigt? Die akzeptierte Person sollte die Gebühr auch vor dem Fälligkeitsdatum zahlen. Andernfalls werden sie von der akzeptierten Liste entfernt. Ich habe auch ein Attribut verwendet, um das zu markieren. Nur die Personen, die die Gebühr akzeptiert und bezahlt haben, sind die endgültige Schülerliste des Systems. Ist das Design vernünftig? Was wäre ein besseres Design? Wie wählt man Attribut und Tabelle?
Antwort
Ob ein Schüler "akzeptiert" wird oder nicht, klingt wie ein Attribut eines Schülers. Das Natürliche, was zu tun ist, ist, alle Schüler in einen Tisch zu setzen und ein Attribut in dieser Tabelle "akzeptiert" zu machen. Wenn Sie zwei Tabellen erstellen, haben Sie vermutlich zwei Tabellen mit denselben Feldern. Wenn ein Student akzeptiert wird, müssen Sie alle seine Daten von der "ausstehenden" Tabelle in die "akzeptierte" Tabelle kopieren und dann den Datensatz möglicherweise aus der "ausstehenden" Tabelle löschen. Das ist viel mehr Arbeit als nur den Wert in einem Feld zu ändern. Noch wichtiger: Wenn sich die Daten eines Schülers ändern, müssen Sie daran denken, beide Tabellen zu ändern und den Code zu ändern, der die Daten kopiert. Du erschaffst mehr Arbeit für dich selbst. Früher oder später wird jemand einen Fehler machen und die Felder in den beiden Tabellen unterschiedlich groß machen, oder vergessen, ein neues Feld zu kopieren usw., und dann bekommen Sie verlorene Daten.
- 1. Xpath - Wie wählt man Eltern basierend auf Attribut des Kindes?
- 2. Wie wählt man DbConfigurationType programmatisch?
- 3. Wie wählt man monatliche und jährliche Termine?
- 4. Wie wählt man eine Tabelle und dann eine andere Tabelle mysql
- 5. Wie wählt man alle Benutzernamen aus meiner Mitglieder Tabelle?
- 6. Wie wählt man Felder aus der verbundenen Tabelle richtig aus?
- 7. Wie wählt man aus der Tabelle mit diesen Bedingungen?
- 8. Wie wählt man die Imformation aus der Tabelle?
- 9. Wie wählt man ein Datum "span" aus dieser Tabelle?
- 10. Wie wählt man Daten aus der folgenden Tabelle?
- 11. Wie wählt man eine Zeile in der Tabelle mit jquery?
- 12. CSS - Wie wählt man mehrere Attributwerte?
- 13. Key und Keyref Einschränkungen: Wie wählt man "xs: selector"?
- 14. Wie wählt man jmh Konfigurationsparameter
- 15. Wie wählt man nte Zeile in CockroachDB?
- 16. Wie wählt man eine bestimmte Zeile?
- 17. Wie wählt man Artikel in SQL Lite?
- 18. Wie wählt man richtig work_group_size?
- 19. Wie wählt man dynamische Knoten in Polymer?
- 20. Wie wählt man 'Ausnahmen' in SQL?
- 21. Wie wählt man die neuesten Daten aus?
- 22. Wie wählt man Spalten nach Zeile und Wert in Postgres?
- 23. JPQL durch Attribut in der Liste wählt
- 24. Wie wählt man die Kindernummer eines Elternteils?
- 25. Wie wählt man ohne Tisch in Ecto?
- 26. Wie wählt man Werte aus der Temp-Tabelle und übergibt sie als Parameter an SP
- 27. Wie wählt man min und max aus Tabelle für Spalte Punktzahl?
- 28. Oracle: Wie wählt man Daten aus mehreren MSSQL und speichert sie in einer Tabelle auf ORACLE?
- 29. Wie wählt man alle Datensätze aus einer Tabelle, die nicht in einer anderen Tabelle existieren?
- 30. Wie wählt man Tischreihen in Polymer?
Ich speicherte Informationen von Studenten in der Register-Tabelle und bestätigtemOrNot-Attribut in der RegisterCourseYear-Tabelle. Ist das richtig? Sollte confirmedOr kein Attribut der Register-Tabelle sein? –
Wenn ein Student ein Jahr bestätigt werden kann und ein anderes Jahr nicht bestätigt wird, dann ist es sinnvoll, das Bestätigungsflag im Jahresrekord zu speichern. – Jay