1

Ich arbeite an einem Anwesenheit/Überstunden-Modul für eine Zeitplan-Web-App. Die Idee ist, dass es in MySQL eine Tabelle mit Verschiebungen gibt, wobei jede Schicht eine Start- und Endzeit hat. Der Manager wählt eine Schicht und gibt einen Eintrag in die Anwesenheitstabelle ein, der angibt, ob der Mitarbeiter früh/spät/früh gegangen/überstunden gearbeitet hat. Dieser Eintrag in der Anwesenheitstabelle wird mit der Verschiebungs-ID # (die nur ein Aufzählungsschlüssel ist) verknüpft.Was als Fremdschlüssel zu verwenden, wenn keine Übereinstimmung in der anderen Tabelle - MySQL

Aber wenn jemand an seinem freien Tag kommt, gibt es keine Verschiebung, um es zu tasten. Was ist ein gutes System für diese Schlüssel? C kann ich eine bedingte Aufzählung einrichten? Und wie vermeide ich das Risiko der Überschneidung mit einer Schicht-ID? Das Hinzufügen der Überstundenverschiebung in die ursprüngliche Zeitplan-DB ist keine Option.

Antwort

0

Ähnlich wie bei Ihrer vorherigen Frage ist NULL dann geeignet, wenn keine Daten vorhanden sind. In diesem Fall ist die Arbeit nicht an eine bestimmte Schicht geknüpft, also was können Sie sonst noch tun? Und wieder sollte der Status dies widerspiegeln.

+0

Aber wenn ich Null verwende, wird der Schlüssel nicht eindeutig sein. Ist das nicht ein Problem? – Anthony

+0

tatsächlich habe ich gerade festgestellt, dass es ein Fremdschlüssel ist und dass ich nur eine separate aufgezählte Spalte für den Primärschlüssel haben kann. Danke dir und Ryan, dass du mir das in den Kopf bekommen hast. – Anthony

0

Was ist los mit dem Hinzufügen eines zusätzlichen Schlüssels zu Ihrer Enum-Spalte? Das sollte den bestehenden Code nicht verletzen und scheint die beste Lösung für mich zu sein.