私はMySQL DBを使用するスケジュールアプリに取り組んでいます。このサイトのモジュールの1つは、マネージャーが遅滞、残業、欠席を追跡することです。現在のサイトは混乱しています。それは単にマネージャがキーデータを入力するだけですが、(従業員が到着/退室すると思われるときのような)既知のデータにマネージャをバインドしたり、標準フォーマットを使用するように要求することさえありません。何人かのマネージャーは30分(遅くて30分を意味する)を入力しますが、他の人は8:30(8:00に期日が到来することを意味します)などと入力します。データベース設計 - この日付の値を示すNULLまたは最大値?
私のバージョンははるかに制限されます。マネージャーは従業員を選択し、問題のシフトを選択します。基本的には、実際に到着した時間、実際に残った時間の2つの値を入力できます。このようにして、レポートが実行され、タイムシートが確認されたときには、単純に遅れているか早いか残業しているかを見るための数学の問題です。しかし、私は厳しい状況に陥ってしまった:
最初に、誰かが病気にかかっている(または表示されない)場合、私はそれを持っているので、マネージャーはそのボックスをチェックし、いつでも調整を行うことができます。それはその時を全面的に黒くするだけです。私はこれを両方の時間値をNULLに設定することで、クエリが実行されると、NULLは必要に応じて処理されます(おそらく、時間が左右にゼロになるように左と時間が逆になります)。両方の時間が到着し、両方の時間が「予想されるシフト終了」時間に設定されているので、ゼロになるようにしますか?
データを利用できないように感じるため、NULLを使用するのは好きではありませんが、実際に到着したかのように見えるため、予想されるシフト終了を使用していませんまた離れる。
これは、(NULLを使用して)過度に複雑にする必要なしに、データのセマンティックを作成する方法の問題です。
私が正しく理解していれば、これはうまくいきます。私はTable1を持っています。それは従業員が仕事をしなければならないときのテーブルです。私はTable2を持っています。 table2がtable1がオフのときのレコードではなく、時間や遅刻などにかかわらず、EVERYONEが働いたときのテーブルです。あなたが欠席していれば、それは表2には現れません。それはうまくいくかもしれません...しかし、それは少しかさばるかもしれません。確かに良いアイデア。 – Anthony
これは私の答えとして設定しています。なぜなら、私の目標が自分の目標に最もよく合うと思うからです。しかし全体的には、NULLが最も適切だということです。私の元の質問によれば、それはおそらく "正しい答え"でしょう。しかし、これは私にとって最も適切です。 – Anthony