Sql Server 2008 で作成されたデータベースを使用して、(Expression Web 4 および Visual Web Developer 2010 Express を使用して) asp.net Web サイトを作成しています。
作成中の Web サイトは、訴訟事例を作成し、訴訟の種類を記録し、弁護士および/または支持者および/またはサポート スタッフが訴訟に取り組んでいると記録できるようにするためのものです。
したがって、「クレイマー対クレイマー」と呼ばれるケースは、2 人の弁護士、1 人の弁護士、4 人のサポート スタッフ全員がこのケースに取り組む離婚訴訟になります。しかし、別のケース「The People v Larry Flynt」は、弁護士 4 人、弁護士なし、サポート スタッフ 10 人の起訴事件である可能性があります。
これまでに行ったことは、次の列を含む「 Case Table 」というテーブルがあることです。
Case_ID (テーブルの主キー); Case_Type_ID; 弁護士_ID; Advocate_ID、および Support_Staff_ID。ケース テーブルの最後の 4 列は外部キーです。
Case_Type テーブルには、「Case_Type_ID」(PK) と「Area_of_law」の 2 つの列しかありません。Case_Type_ID は単純な数字 (001,002...) で、'Area_of_law' は char(30) です (訴訟、離婚、財産、犯罪者など)。ここまでは順調ですね。
問題は (これは支持者とサポート スタッフにも当てはまります)、単純に 3 つの列を持つ弁護士テーブルを作成した場合です。
列 = Lawyer_ID (主キーとして) | 名 | 苗字
レコード 1 = 001 | トム | トム | ハンクス
レコード 2 = 002 | トム | トム | クルーズ
レコード 3 = 003 | ダニエル | クレイグ
レコード 4 = 004 | ニコル | キッドマン
複数の弁護士をケースに割り当てるにはどうすればよいですか?
Case Table内で、正規化ルールに準拠するために、おそらく、上記のようにCase Tableに列を追加して Lawyer_ID_1 (FK)| を記録する必要があります。Lawyer_ID_2 (FK)| Lawyer_ID_3 (FK) | Lawyer_ID_4 (FK)。
だからそれは004かもしれません| 002 | ヌル | ニコール・キッドマンとトム・クルーズがこの事件に取り組んでいることを示すヌル. Lawyer_ID 列が 1 つしかない場合、Nicole Kidman と Tom Cruise がこの事件に取り組んでいることを示すには、'004,002' にする必要があります。
すべての弁護士を別のテーブルに記録することで、リストに弁護士の名前が入力されるため、Visual Web Developer 2010 Express で( Lawyer Tableにバインドされた)データバインドされたチェックボックス リストを作成できます。ですから、私はこのアプローチに満足しています。
しかし、次にLawyer Table内に 50 人の弁護士がいる場合、 Case テーブルに 50 列を弁護士だけに割り当てる必要があります (ケースが最終的に 50 人の弁護士で作業することになった場合)。Lawyer 列の数が影響を受けるため、弁護士が削除または追加されるとCase Tableが歪む可能性があるため、このアプローチには問題があります。明らかにこれは悪いアプローチなので、誰でも助けることができますか?
多数の列を使用せずに、1 つの「ケース」レコードを複数の「弁護士」レコードに関連付けることができるデータベース スキーマはありますか? (願わくば、このスキーマをSupport Staff TableとAdvocate Tableにも適用できます)。
あなたの助けは大歓迎です。私は Web 開発と sql データベースの作業が初めてで、解決策を調べようとしましたが、問題のキーワードがわからない可能性があります。