だから私はMySQLDBを使用するスケジュールアプリに取り組んでいます。このサイトのモジュールの1つは、マネージャーが遅刻、残業、欠勤を追跡するためのものです。現在のサイトはめちゃくちゃです。マネージャーにキーデータを入力させるだけですが、マネージャーを既知のデータ(従業員が到着/退去する予定の場合など)にバインドしたり、標準形式を使用するように要求したりすることはありません。30分(30分遅れ)と入力するマネージャーもいれば、8:30(8:00に予定されている)と入力するマネージャーもいます。
私のバージョンははるかに制限されます。マネージャーは従業員を選択し、次に問題のシフトを選択します。基本的に、実際に到着した時間と実際に残った時間の2つの値を入力できます。このように、レポートが実行され、タイムシートが検証されるとき、それは単にそれらが遅い/早い/残業であるかどうかを確認するために計算を行うことの問題です。しかし、私は困難な場所に遭遇しました:
まず、誰かが病気で電話をかけた場合(または単に表示されない場合)、私はそれを持っているので、マネージャーはそのチェックボックスをオンにするだけで、時間の調整はまったく行われません。その時は完全に真っ暗になります。両方の時間値をNULLに設定してこれを行う必要があり、クエリが実行されると、必要に応じてNULLが処理されます(おそらく、残り時間が逆になり、時間が到着して両端がゼロになる)、または到着時間と残り時間の両方が「予想されるシフト終了」時間に設定されているので、ゼロになりますか?
利用可能なデータがないように感じるのでNULLを使用するのは好きではありませんが、期待されるシフトエンドを使用するのは好きではありません。
これは、データを過度に複雑にする(NULLを使用する)ことなく、データをセマンティックにする方法の問題です。