0

私がやりたいのは、プラントの可用性を監視できるページを設定することです。つまり、JCBは1日に何時間稼働していましたか。ページ上でプラントのステータスを(簡単に)変更するボタンを1つにしたいのですが、ステータスがいつ変更されたかを追跡して、特定の期間の可用性を計算できるようにしたいです(ビットI立ち往生しています)。

私はこれを可能にするためにデータベースとphpスクリプトをどのように構造化できるかを考えるのに苦労しています...どんなアイデア/助けも大歓迎です:)

4

2 に答える 2

2

これは問題の解決策ではなく、自分で解決策を見つけるのに役立ついくつかのアイデアです。

まず、ペンと紙を用意して、アイデア、あれやこれを行う方法、データベースの設計、関連性があると思われるものを書き始めます。しばらくすると、開始方法についてのアイデアが得られます。

思いついたアイデアから始めてください。それが最高だと確信していなくても、(パフォーマンスなどの) いくつかの欠陥がある可能性があります。数時間後、おそらく最初からやり直す必要がありますが、以前に遭遇した問題を正確に把握し、何が欠けていたのか、何が正しかったのかについて良い考えを持っているでしょう.

それはそれについてです。試行錯誤、それがプログラミングのやり方であり、そうすることで、あなたはますます優れたプログラマーになります.

PS: 正確なコード例が必要な場合は、先に進んでコードを書き始め、コードに関連する質問を投稿してください。

于 2013-02-01T14:08:56.840 に答える
2

You could structure your table with columns for JCB ID, start time, and end time like below

jcb_id    start_time               stop_time
1         2013-01-31 00:00:00      2013-01-31 06:19:00
1         2013-01-31 21:04:00      null
2         2013-01-31 08:00:45      2013-01-31 18:19:00

In the example above:

  • jcb_id 1 is currently active because the stop_time is null.
  • jcb_id 2 is down because there is no record with a null stop time.

When you click the button, the page will check to see if there is a record for the JCB with a null stop_time.

  • select from the jcb table where jcb_id = ? and stop_time is null
  • If a null stop time exists for the JCB,
    • update the record with NOW() - JCB is not working
  • Else - there is no null stop time record for the JCB
    • insert a new record, leaving stop_time null - JCB is working

From there, you can run a query to calculate the time between the starts and stops to get up/downtime.

于 2013-02-01T14:18:47.200 に答える