第16回 JavaのN:M と リレーショナルDBのN:M
リレーショナルDBでは、N:Mを表現することは無理。
だから間にテーブルを作り、1:N, 1:Mの構造を作る。
それに対してJavaではN:Mの構造を作ることが可能。
人間のそもそもの思考は実はこちらに近い。
大学の授業で、講義と生徒がN:Mにあたるもの。
講義は複数の生徒を持つし、生徒は複数の講義を持つ。
N:Mをあらわしたもの
ソースを具体的にハッシュ的に表したもの
{ '数学' => [ { '生徒1' => ['数学', 'PG', ... ] }, { '生徒2' => ['数学', 'Unix', ...] } ] 'PG' => [ {'生徒1' => ['数学', 'PG', ... ] }, {'生徒3' => ['PG', ... ] } ] }
クラス定義(型定義)で表したもの
Class 講義{ 講義名:String 生徒群:List<生徒> } Class 生徒{ 生徒名:String 講義群:List<講義> }