アプリ版:「スタンプのみでお礼する」機能のリリースについて

端末毎の ログイン時間を調べる為 postgres 8.15 でデータベースを
作成しようと思うのですがどう考えれば良いか教えてください。

要件
・端末が150台程ある。
・主にログイン時間 とログオフ時間を書き込む。
・一日に何度もログインしたりログオフしたりする。
 (365日ログインログオフの度に書き込みがある。)
・ログオンしっぱなしで何週間もログオフしないユーザーもいる。
・ログイン、ログオフの時間をこのデータベースに書き込むツールは
 別途用意できている。
・後日このデータベースを使い端末毎の利用状況を調べる。(一日の内
 何時 間ログインしているか?)

こんな感じでよいのでしょうか?
初心者の為オーソドックスな考え方を教えてください。
1.No-オートで振られる用にする
2.端末名-テキスト
3・ログイン時間-日付、時刻型
4.ログオフ時間-日付、時刻型

A 回答 (2件)

テーブルデザインを気にされているようですが、すでに更新用のツールが準備されている状態であるなら、テーブルの構造を悩む余地はないのではないですか?(そのツールの書き込み方で決まりでは?)


書かれた形でデータを保持できるならば検索には理想的ですが、通常ログはINSERTするものです。
ログイン時間とログオフ時間を同一レコードに記録するためには、
ログイン時にはデータを追加し、ログオフ時にはログイン時間が記録されていてログオフ時間が未収録のデータがあれば更新し、なければ追加するというようなハンドリングが必要になります。
(そうしないとどのような事情であれログインが記録されなかったときにログオフ情報がロストしますので)

パフォーマンス面も考えれば、ツールがそんな仕様になっているとは考えにくいですよね。したがって、結局は「連番、端末名、IN/OUT、時刻」とせざるを得ないのではと思います。

この回答への補足

>更新用のツールが準備されている状態であるなら、テーブルの構造を悩む余地はないのではないですか

前任者が作成したツールとデータベースがあるのですが
データベースが配列を使用した構造になっていて
端末名が主キーにしてlogon,logoff の箇所に毎回の時間
が入っています(数百回分も入っている)。
データを取り出して加工するのに非常に不便なためデータ
ベースは作り直してツールも改造しようと思い相談した次第です。


連番、端末名、IN/OUT、時刻 とすればスマートにいきそうです。
ありがとうございました。

補足日時:2008/07/17 08:28
    • good
    • 0

端末を使用するユーザが固定でないなら、ログインユーザ名も必要では?

この回答への補足

アドバイスありがとうございます。
それも入っているのですが今回のフォーカスは
ログイン、ログオフ 時間データの持ち方だっ
たので割愛しました。

補足日時:2008/07/18 07:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!