2016-05-03 3 views
1

サービスがダウンしてアップしたときにこれを私のデザインにする(デモのためだけに)ユーザーに通知したい。ユーザーヒストリースキームデザインに通知する

サービスがダウンすると、履歴にdownTimeのレコードを追加し、upTimeがNULLになります。サービスが始まるまで、私はlast serviceをrelative serviceId で見つけ、upTimeを更新します。私はそれが正しいデザインかどうかわからない。たぶん2つのレコードに分かれていますか?

答えて

1

これは2つのレコードに分かれています。そして、なぜサービスがダウンしているのか、サービスを復旧するためにどのように修理を行うのかという問題について説明するコメントフィールドを追加したいと思います。

スキーマは、あなたが何かを表示したい場合はその後、データは

HistoryID ServiceID  Status  StatusTime    Comment 
1    1   Down   2016-05-03 00:00:00  Problem happens because xxx 
2    1   Up   2016-05-04 00:00:00  Restart the service 

* EDIT ようになる

Table History 

HistoryID int, 
ServiceID int, 
Status varchar(4), 
StatusTime datetime2(3), 
Comment varchar(50) 

のようになります:

いるServiceID:1 donwtime: 2016/05/03稼働時間:2016/05/04。

あなたのスキーマを使用して、select文を簡単にすることができます。しかし、私はまだコメントを使用して、サービスの原因を知らせ、どのように修正することができるかを知らせることをお勧めします。それはあなたのサービスを維持するためにそれをより良くするでしょう。そして、それぞれのダウン状態に対して新しい行を挿入し、最後の行をアップ状態に更新することができます。例えば :

HistoryID ServiceID DownTime UpTime DownComment UpComment 
    1   1   xxx xxx  xxx   xxx 
    2   1   xxx NULL  xxx   NULL 

最初の行は、サービスが既に修復およびXXX時に上がったことを意味します。 2番目の行は、サービスが再びダウンしたことを意味しますが、修復されていません。

+0

多くの同じserviceIDアップ/ダウンレコードがある場合、履歴レコードを表示する方法 – MichaelMao

+0

@MichaelMao履歴レコードをどのように表示したいですか?最後のレコードだけを表示する場合は、 'max(StatusTime)'で選択できます。または、1つのServiceIDのすべてのレコードを表示したい場合は、それを選択して「group by ServiceID」(このサービスのダウンタイムを確認する)を選択できます。 – Mark

+0

ServiceIDのようなもの:1 donwtime:2016/05/03稼働時間:2016/05/04フルディスプレイではダウンタイムとアップタイムが必要ですが、1回のサービスで何度もダウンしてしまうことがあります。 – MichaelMao

関連する問題