0

私はデータベース設計に比較的慣れていないので、まだ多くのことを学んでいます。私が取り組んでいるのは、オンラインのタイムカード時計です。私はもっ​​と学ぶためにそれをいじっているだけです。私のフルタイムの仕事は、重機を操作している叔父のために働いており、彼は私にいくつかの頭痛の種を表明しました。タイムカードを調べるとき、何人かの従業員の手書きは読みづらく、何人かの従業員は時間を正しく追加しないので、彼は常に彼らの数学を再確認しなければなりません、そして何人かの人々は時間通りにタイムシートを提出しません。ほとんどの従業員はスマートフォンを持っているので、私の解決策は、「Clockin」と「Clockout」のボタンを備えたシンプルなWebサイトを作成することです。このウェブサイトには、従業員がその日に何を操作したかと現場を説明するいくつかのテキストフィールドも含まれます。彼らはオンでした。これらはすべてデータベースに追加され、週の終わりに上司に電子メールで送信されます。私の質問は、このためのデータベースをセットアップするための最良の方法は何でしょうか?従業員ごとに個別のテーブルを追加する必要がありますか、それともすべてを1つのテーブルに保持する必要がありますか?サイトを利用する従業員は約20名です。助けてくれてありがとう。

4

1 に答える 1

4

一般的なデータベースの原則:

オブジェクト指向について考えてください。オブジェクトのクラス。

  • 「従業員」はそのようなクラスの1つであるため、従業員を格納するテーブルが1つ必要です。
  • クロックインやクロックアウトなどの「イベント」は、ClockInとClockOutなどの2つの特定のケースの一般的なクラスです。
    • イベントを格納するための1つのテーブルと、イベントの日時のフィールド、従業員(外部キー)の1つのフィールド、イベントがインかアウトかを示す1つのフィールドを検討できます。
    • または、ClockIn用に1つのテーブル、ClockOut用に1つのテーブルを検討することもできますが、後でレポートを印刷するときにデータをスキャンする方法によっては、これが有利でない場合があります。私は個人的にこのアプローチに反対することをお勧めします、ただそれがオプションであることを指摘してください。
  • 理想的には、すべてのテーブルに数値の主キーが必要です
    • キーと値のペアについて考えてください
    • 従業員
      • 1 Jon Doe
      • 2フアン・ゴメス
      • 等...
    • イベント
      • 12012-11-2908:59クロックイン2
      • これは、今日の午前9時直前にフアンゴメスが計時していることを意味します
于 2012-11-30T02:54:20.603 に答える