2016-07-29 2 views
2

従業員レコードが保存されているシステムを考えてみましょう。データベースには従業員の名前、部署などが格納されていなければなりません。すべての従業員にはレポートを作成するレポートマネージャがあります。 従業員の4つのレベルがあります -このサンプルデータベースのERDの描画

  1. ジュニアエンジニア
  2. シニアエンジニア
  3. チームは、すべてのジュニアエンジニアは、シニアエンジニアに報告しなければならない

  • シニアチームをリード。すべての上級開発者はチームリーダーに報告しなければなりません。すべてのチームリードはシニアチームリードに報告する必要があります。

    私はこのアイデアに来た: - 、社員などの必要な情報が含まれます

    Employee tableを2.Reporting

    1.Employee

    2台があります

    従業員名、部署名など。主キーはEmployeeID

    Reporting Tableで、EmployeeIDとReportingMangerIDの2つの列が含まれます。 EmployeeIDは、Employee TableのPrimarykeyに関連する外部キーです。

    私は正しいかどうか分かりません。

  • 答えて

    1

    次はtrueの場合:

  • 1人の従業員が0..Nレポート
  • を持って 0..1他の従業員へ

    • 1人の従業員のレポートは、あなたが "マネージャー" を持つことができます従業員表の属性として使用します。

      次がtrueの場合:

    • 1人の従業員が0..Nレポート

    を持っている他の従業員を0..Nする

  • 1人の従業員のレポートはその後、あなたの構造を持っている必要があり

  • +0

    私は最初の条件はtrueだと思います。この場合、追加のテーブルは必要ありません。 – BlackCat

    +0

    "manager"は事実上 "employee"の属性になりますので、余分なテーブルは必要ありません。 –

    +1

    この質問には「ERD」と記されているので、ERではエンティティセットからエンティティセットへのマッピングではなく、エンティティセットから値セットへのマッピングであることに注意してください。あなたが記述しているのは、属性ではなく非正規化された関係です。 – reaanb

    関連する問題