喫茶XRAYトップページ

[▲前のスレッド]

[1418] データ保存についての考察?返信 削除
2007/9/20 (木) 12:14:49 Syake
「あるデータ群」及び「顧客データ」は既にある。
そこで、顧客を指定してから、ある条件をインプットすれば「あるデータ群」
から適切な伝票を表示する。
そこで印刷するだけだが、発行番号が必要である。
その発行番号は顧客毎の連番である。
但し、発行した伝票の発効日や発行内容等の履歴データは必要ない。

上記の例では、伝票発行毎に適切な発行番号表示されればよいので、顧客コード
と発行伝票番号を保持するテーブルを作成する。
伝票発行時には、このテーブルから発行伝票番号を取得する。
伝票発行後には、その顧客のレコードの発行伝票番号を更新する。

とまあ、単純な例題があったとする。

ところで、この発行伝票番号には何の値を保持しますか?
1.次回発行するであろう伝票番号
2.今回発行した伝票番号
プログラム的にはなんら問題ない。
1.ならば、取得した伝票番号をそのまま印字、印刷後はその連番を加算して更新
2.ならば、取得した伝票番号を加算して印字、印刷後はその番号で更新

長々と書きましたが、どちらを選びます。
つまり、未来あるべき姿のデータを保持するか、現状の結果を保持するかという事
になるでしょうか?
どちらでも結果は同じことなのですが、どうも1.はしっくりきません。
1.には違和感を感じるのは私だけでしょうか?




[1419] Re:データ保存についての考察?返信 削除
2007/9/20 (木) 12:27:24 Syake
> つまり、未来あるべき姿のデータを保持するか、現状の結果を保持するかという事
> になるでしょうか?

ちなみに、未来あるべき姿を想定してデータを保持するなどという事は当然
不可能です。
しかるに、通常は現在のデータが保持されるのが当然です。

実際に今回はある会社で組まれたテーブルにこの様なものが混ざっていました。
またこれは、単純で未来あるべき姿は確定していると断言できるので運用上で
問題になる事はありません。

私はデータベースの哲学を云々するものでは有りませんが、保持するデータは
現状のデータを保持する物と考えていましたので、思いもよりませんでした。
ちなみに、例題は例題で似て非なるものですが。

 

[1420] Re2:データ保存についての考察?返信 削除
2007/9/21 (金) 00:15:18
▼ Syakeさん
> しかるに、通常は現在のデータが保持されるのが当然です。
私なら1番をとります。
理由1
このような処理の環境なら、オペレータコード、日時、端末番号、を記録されるべきであり、
印刷を開始する前に印刷されるだろう確定された伝票番号とリンクされなければならない。
印刷するとき加算して伝票番号が生成されることは、オペレーターが処理を開始する前は、架空の番号となる。
たいてい、複数のオペレーターが操作することを考えると管理しにくい。

理由2:
必ず、ハードトラブルが起きることを想定しなくてはならないから、オペレーターは自分が印刷しようとした伝票番号を
かれが印刷が成功するまで、はじめにもらった伝票番号を管理しなくてはならない。
そうでないと、複数のオペレータが複数のプリンタで処理しているであろうことを考えると、
全員先に進めないことになる。
印刷は非常にくせ者で、一見正常に印刷したようでもジャムッていた、印字がかすれていた、
成功したことを確認しにくい。
また、プリンターはバッファーをたいてい持って印刷待ちになりながら印刷するので、処理指令が発せられてから
勝手に伝票番号がカウントアップされては、フォローが大変。
つまり、どの時点で伝票番号をカウントアップするか非常に難しいのでは。

理由3:
かならず、このようなジョブではイレギュラー処理が発生する。ことを前提にしておかなければならない。
オペレーターが印刷指令をした後でいわばその時点では架空の番号が伝票に印刷される場合、
イレギュラー処理はやりにくいことは明白です。
印刷履歴は不要とのことですが、実務では考えられない。
データのミス発見、返品、キャンセル、等があった場合対応できないのでは。

と私は考えます。
では。


[1421] Re3:データ保存についての考察?返信 削除
2007/9/21 (金) 08:20:22 Syake
▼ 宮さん
> ▼ Syakeさん
> > しかるに、通常は現在のデータが保持されるのが当然です。
> 私なら1番をとります。


伝票といえば一般的に仕入伝票、売上伝票・・・・と解釈されますね。
伝票と言う言葉を例題に付加した私が悪かったのか、総じて履歴等を
管理しなければならない云々が前提のようです。
確かに要求される内容によっては当然であり重々承知の上ですが、例
題に記した通り必要ないのです。
実際は伝票の発行などではありません。(^_^;)

> 印刷するとき加算して伝票番号が生成されることは、オペレータ
>ーが処理を開始する前は、架空の番号となる。

では、1.自体は呼び出す前から架空の番号ですよね。

> 必ず、ハードトラブルが起きることを想定しなくてはならないから
当然と思いますが、一般的に印刷を開始後にプリンターがトラぶって
もプログラム上では知る由も有りません。
もっとも独自にそういったハードを含めたシステムを組めば別でしょ
うが、一般的には非現実的な話です。

>オペレーターは自分が印刷しようとした伝票番号をかれが印刷が成
>功するまで、はじめにもらった伝票番号を管理しなくてはならない。
> そうでないと、複数のオペレータが複数のプリンタで処理している
>であろうことを考えると、全員先に進めないことになる。
> 印刷は非常にくせ者で、一見正常に印刷したようでもジャムッてい
>た、印字がかすれていた、 成功したことを確認しにくい。
> また、プリンターはバッファーをたいてい持って印刷待ちになりな
>がら印刷するので、処理指令が発せられてから勝手に伝票番号がカ
>ウントアップされては、フォローが大変。
> つまり、どの時点で伝票番号をカウントアップするか非常に難しい
>のでは。

当然ですが、1.でなければならない根拠になるとは思えません。
 
> 理由3:
・・・やはり例題が悪かったな m(__)m

[1422] Re4:データ保存についての考察?返信 削除
2007/9/21 (金) 11:42:08
▼ Syakeさん
> ・・・やはり例題が悪かったな m(__)m

すみません。はずしていたようですね。
ただ、現役時代、勤務していた会社ではこのようなソフトの受注を
やっていたので、あらゆる想定をするのが習慣でしたので。

では。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82