Asp.Net MVCにタイムシートアプリケーションがありますが、問題は一般的なデータベース設計です。
顧客、プロジェクト、タスク、従業員、TimeSegmentなどの関連するテーブルがいくつかあります。ここで、タスクを「リソース」として従業員に関連付けることができるようにしたいと思います。また、リソースごとに、特定のタスクのために従業員に割り当てられた作業の割合に関する情報を取得できるようにしたいと思います。でも頭を包むことはできません。私が見る限り、それは単にタスクと従業員の間の多対多の関係ではありえません。それでは、パーセンテージフィールドをどこに置くのでしょうか?従業員に貼った場合、特定のタスクとどのように関連しますか?
単純な問題のように思えますが、理解できません。データベースのスキルはかなり初歩的なものです。だからどんな助けでも大歓迎です!
編集:わかりました。あなたの何人かは、Employee_IdとTask_IdとWorkPercentageを使用して「リソース」用の個別のテーブルを作成する際のいくつかのバリエーションに答えました。しかし、タスクを追加するたびに、Employee_IdとTask_Idを手動で更新する必要がありますか?これらの回答は、従業員とタスクの間に多対多の関係を追加してから、ジャンクションテーブル(EmployeeTask)にWorkPercentageのフィールドを追加する必要があるというヒントとして最初に理解したためです。私はそれを試しましたが、従業員を追加しようとするとすぐに問題が発生し、EmployeeTasksのリストが要求され、null不可能なフィールドにnull値がないという不満がありました。しかし、それは私がそれを行うべき方法ではありませんでしたか?むしろ、各フィールド値で手動で更新された個別のテーブル...?
可能であれば、提案したソリューションの処理方法を正確に説明してください(つまり、関係の観点から)。ありがとう!