1

これはこの質問に似ています

基本的に私は建物監視システム用のデータベースとソフトウェアを書いています。システムは、ユニット(冷蔵庫など)の温度、湿度、圧力などを監視します。

特定のユニットについてレポートが生成されると、センサー名が付いた各センサーの列があり、以下の読み取り値があります。

読んだ時の名前なのか、今の名前なのかを決めようとしています。

同じ(主)キーが与えられた場合、それが一意に識別するデータの意味は、その属性が変更されても変更されるべきではないと私は信じがちなので、現在は後者である必要があると思います。したがって、名前の変更は、名前自体が主キーであるかのように、修正または明確化のためだけに行う必要があります(私はすべて自然キーですが、長さとスペルの必要性のために何かの名前を使用しない傾向があります)修正-この場合、監視しているユニットに固有の「SensorNo」フィールド(IDではない)がありますが)。

とにかく、これは実際に現在の名前を使用できることを意味します。センサーの名前をおそらく「Air」から「Food」に変更すると、以前のデータが表示されている場合でも、すべてのレポートデータで「Food」と表示されます。変更、この変更であるという考えは、それが常に「空気」ではなく「食品」であることを意味するはずです-それは修正です。

「上限」や「下限」などの「重要な」データ(たとえば、温度範囲)がない場合は、レポート時に履歴データを使用する必要があります。この場合、履歴データは、その時点でのセンサーの温度範囲を示しているためです。読む。

ユーザーのフルネームを変更するのと似ていると言えます。同じ人物ですが、名前が変更されている可能性があるため、レポート履歴には常に最新の名前が表示される必要があります。そうしないと、混乱が生じる可能性があります。

私の計画は、ユーザーが名前を変更できるようにすることですが、最初にその影響について警告し、修正にのみ使用する必要があると述べています。

これについての人々の考えは何ですか?この状況にどのように対処しますか?リンクされた質問に答えたCatcallからの連絡にも興味があります。

(これは履歴データがどのように保存されるかについての議論ではないことに注意してください、私はすでにその側面で大丈夫です)。

4

2 に答える 2

1

自分で答えたと思います。フィールドの名前を変更した場合、それは修正です(その後、新しいレポートで古い名前を参照する必要はありません)。意味が変わったためにセンサー名を変更した場合は、新しいセンサーを追加する必要があります。この種の間違いからユーザーを本当に救うことはできないと思います。一部のアプリケーションでは、新しい入力セットを作成するときにデータベースを削除するのを見ました(ただし、これを実行できないか、実行したくない場合があります)。ベンダー/モデル名をタグ名(センサー名)として使用する場合は異なる場合があります。この場合、それは時間の経過とともに変化する可能性があり、おそらく彼らは本当のことを見たいと思っています各間隔の名前。この場合、変更がタグ名に限定されている場合は、小さなテーブルを使用してこれらの変更(id、name、timestamp)を追跡し、仮想のResolveTagName(id、time)関数を更新してそのテーブルを照会できます。制限の履歴データは時間の経過とともに変化する可能性があるため、疑問があります(たとえば、パーツが古くなったり、測定可能な物理的ストレスが原因で、パーツの最高温度が時間の経過とともに低下する可能性があります。この場合、現在の制限を適用することはできません。古いメジャーの場合)。

于 2012-03-06T15:13:24.667 に答える
0

「ユーザーのフルネームを変更するのと似ていると言えるかもしれません。それでも同じ人物ですが、名前を変更する可能性があるため、レポート履歴には常に最新の名前を表示する必要があります。そうしないと、混乱が生じる可能性があります。 。」

混乱は常に続く可能性があります。そして、単純な対策ではそれを防ぐことはできません。センサーの名前が「Air」になっているが、ある時点で「Food」と呼ばれていたとします(その時点で、「Air」という名前の別のセンサーがありました)。誰もログをチェックして「1年前のセンサー「空気」をここで測定しましたが、自分でログをチェックしたところ、まったく違う数字が見つかりました」と思いつくことはないだろうとどう思いますか。

できることは2つあります。(a)レポートに「センサーエア」(2ワード)と記載されている場合、それが実際に意味するのは、レポートの作成時に「エア」と名付けられたセンサーであることをできるだけ明確にするようにしてください。 、ただし、レポートの作成前に別の名前が付けられていた可能性があり、レポートを表示するときに「空気」と呼ばれるセンサーとまったく同じセンサーである必要はありません。 "(カウントを失った)。それをユーザーに説明しようとすると、ユーザーが率直に背を向けて立ち去らない限り、あなたが得ることができる最善のことは空白の凝視です。マニュアルに書くと、ユーザーがマニュアルを読んだことがないことがわかります。

(b)過去の名前の変更の兆候をレポートに含めることができます。少し不可解に(たとえば、「*」のようなアラート文字列)実行すると、自分で忘れたときに、それが何を意味するのかについて質問を受けることが保証されます。おそらく、タイトルセクションのすぐ下など、過去の名前の変更を含む別のセクションを印刷することをお勧めしますが、名前の変更履歴がない場合は、何も印刷しません(その余分なセクションの見出しも印刷しません)。

「私の計画は、ユーザーが名前を変更できるようにすることですが、最初にその影響について警告し、修正にのみ使用する必要があると述べています。」

「修正にのみ使用する」と決定することは、あなたには関係ありません。多くの実世界のオブジェクトは、通常、名前を使用して人間の話し言葉で識別され、それらの実世界のオブジェクトの多くは、その存続期間にわたって異なる名前で表示されます。私が考えることができるほとんどすべての設定で、名前が最も快適な識別手段であるという事実を変えることはできません。ビルゲイツの妻が買い物に行きたい場合、彼女は「ハニー、ポルシェを持っていってもいいですか」と尋ねるか、「ハニー、WOL0x547832187を持っていってもいいですか(ビルゲイツの正しい一意のシャーシID番号である可能性があります」)ポルシェ) ?"。また、物事が名前を変える可能性があるという事実を変えることもできません。

于 2012-03-06T21:02:52.097 に答える