2016-06-20 3 views
0

Ich habe Useraccount Tabelle und andere Tabellen wie Mitarbeiter, Studenten usw. Ich möchte wie eine Prüfung haben, der einen Schüler Datensatz erstellt oder den einen bestimmten Mitarbeiterdatensatz erstellt. Ist es empfehlenswert, UserAccountId als Fremdschlüssel in allen anderen Tabellen wie Employee, Student usw. zu verwenden? Ich benutze Winterschlaf, wenn ich so mapped, muss ich eine zu viele Beziehung zwischen UserAccount und allen anderen Klassen aufrechterhalten, so dass Code zunimmt und für mich ist das eine Last.Ist es eine gute Vorgehensweise, UserAccount-Tabelle mit allen anderen Tabellen in SQL Server zuzuordnen?

Antwort

0

Nun, es bricht alle Normalisierungsregeln. Habe stattdessen eine Link/href-Tabelle. UserAccountID, EmployeeID (NULL), StudentID (NULL). Habe eine solche massive verknüpfte Tabelle. Die Fremdschlüssel müssen neben UserAccountID (Primärschlüssel und Fremdschlüssel) nullwertfähig sein.

0

"Gute Angewohnheit/Praxis" ist subjektiv.

Wenn die Geschäftsdomäne die Tatsache enthält, dass die Person, die eine Entität erstellt hat, eine sinnvolle Information ist und dies wahrscheinlich eine reguläre Anforderung von Endbenutzern ist, dann fügen Sie den Tabellen ein Attribut "createdBy" hinzu. Klassen ist in der Tat gute Praxis.

Der beste Weg, um zu wissen, ob dies zutrifft, besteht darin, den Product Owner zu fragen, ob sie einen Bildschirm benötigen, der "alle von Benutzer x erstellten Mitarbeiter" anzeigt. Wenn sie "Nein, nur wenn etwas schief läuft" sagen, haben Sie eine Audit-Anforderung; Wenn sie "Ja, wir benutzen das regelmäßig" sagen, ist dies ein wesentlicher Bestandteil Ihres Geschäftsbereichs.

Sie können feststellen, dass Ihre Benutzer nicht nur wissen möchten, wer eine Zeile erstellt hat, sondern auch, wer sie geändert hat. In diesem Fall gibt es ähnliche Fragen zu SO.

Verwandte Themen