Was als Fremdschlüssel, wenn keine Übereinstimmung in der anderen Tabelle verwenden - MySQL
-
19-09-2019 - |
Frage
Ich arbeite an einer Teilnahme / Überstunden Modul für einen Zeitplan Web-App. Die Idee ist, dass es eine Tabelle in MySQL von Verschiebungen, jede Verschiebung eine Start- und Endzeit hat. Der Manager wird eine Verschiebung wählen und einen Eintrag in die Anwesenheitstabelle macht die Angabe, ob der Mitarbeiter war früh / spät / früh abgereist / Überstunden. Das Eintrag in der Anwesenheitstabelle wird auf die Verschiebungen ID # verkeilt (die nur ein Aufzählungs Schlüssel ist).
Aber wenn jemand kommt in an ihrem freien Tag gibt es keine Verschiebung es einzugeben. Was ist ein gutes System für die Tasten zu bedienen? Ccan ich eine bedingte Aufzählung up? Und wie vermeide ich das Risiko einer Überlappung mit einer Verschiebung ID? die Überstunden Verschiebung zurück in die ursprünglichen Zeitplan DB Hinzufügen ist keine Option.
Lösung
Ähnlich wie Ihre vorherige Frage, wenn es keine Daten vorhanden sind, dann ist NULL angemessen. In diesem Fall wird die Arbeit nicht auf eine bestimmte Verschiebung angebracht, so was sonst, können Sie es? Und wieder der Status sollte dies widerspiegeln.
Andere Tipps
Was ist los mit dem Hinzufügen eines zusätzlichen Schlüssels zu Ihrer ENUM Spalte? Das sollte nicht schaden vorhandenen Code, und scheint die beste Lösung für mich.