勤務機能の簡単な実現を覚える

1325 ワード

最近の問題を記録するのは久しぶりで、本当に忙しいからです.
よし、くだらないことは言わないで、本格的に始めましょう.
勤務機能の実現には,まず勤務者,勤務時間,勤務状態などの属性を考慮する必要がある.簡単に言えば、ユーザーが勤務ボタンをクリックした後、勤務状態を変更し、現在の時間を勤務者に対応する表記録に復刻することにほかならない.
現在、私のデフォルトの'0'はカードを打っていない状態で、'1'はカードを打っている状態で、SQL文は以下の通りです.
update table_kq set kqsj='2018-5-6 20:55:27',status='1';

これにより,バックグラウンドで各個人の勤務状況を表示することができ,ページの先端にチェックやフォークの画像を用いて直感的に展示することができる.
次に、問題が来ました.ここには勤務者一人一人の勤務状態が反映されています.私が初日にカードを打った後、データベースの「staus」フィールドの情報はずっと「1」で、その後のカードを打つたびにカードを打つ時間を変更することにほかならず、毎日未明に各勤務者の勤務時間と勤務状態を自動的にリセットするにはどのような方法が必要ですか.現在私が考えているのはjavaで簡単なタイマを実現し、リセット機能を呼び出すサービスです.
また、他に実現策があるかどうか考えています.外に出てタバコを吸って、グループの中でこの問題を提起して、ある人は私にデータベースの中で1つのイベントのタイミングトリガを書くとokになったと教えてくれました.これまでデータベースにタイミングトリガを書くことに触れたことがないので、新しい学習機会になります.しかし、少なくとも2つの実装案がある.
自動トリガを実現した前提で,この簡単なカード打ち機能は当日の勤務状態の照会のみを提供すると仮定する.もし、過去1週間、または1ヶ月の人員勤務状況を調べたい場合は、どのように処理すればいいですか.
今のところ、勤務表は1枚しかないので、私が表を更新しない限り、主表は当日のデータを保存し、副表は毎日の人員勤務状況を保存し、副表に関連するフィールドはkqrq(yyyy-MM-dd)、kqr 1、kqr 2、kqr 3....kqstatus.これは、各勤務者の名前をフィールドとして表示することになります.歴史的な勤務状況を見るには、2018年5月6日のように、明ちゃんの勤務状況はカードを打っていないのか、カードを打っていないのかを確認する必要があります.
   select kqstatus from tab_history_kq where kqsj='2018-5-6' 
この方法は少し愚かだが、最後には歴史的な勤務状況の照会を実現することができるが、もっと賢い方法があるに違いない.
言わないで、タバコを吸って、最適化方法を考えてみましょう.