質問: ### 前提 ASP.NET MVCを使っています。 業務ではC言語で組込みをやっていて、MVCは趣味で始めてみた初心者です。 まず、テーブルを正規化して5個くらいのテーブルを作成しました。 Viewではそのテーブル内のそれぞれのデータを参照したいので、 5個のテーブルをjoinで結合し、ViewModelに格納し、 ViewModelのデータを参照するようにしています。 ### 質問 ふと思ったのですが、せっかく正規化したものをすべて結合してひとつの モデルにする、このやり方は合っているのでしょうか。 何なら最初からすべてひとつのテーブルのままにしておいて、 ViewModelを作成せずとも、コントローラーからその1つのテーブルを viewにモデルとして渡せばよいのではないのかとも思いました。 ご回答よろしくお願いいたします。
回答: DBの正規化は、データの追加、変更、削除するとき、威力を発揮するものです。 データの追加、変更、削除をするときのシナリオを考えてみてください。 そのため、5つのテーブルに分けられるものを、一つにするのは、よくありません。 とはいっても、正規化されている状態だと、表示用、分析用には、使い勝手が悪いので、 使い勝手を良くするためにVMをつくるというくらいの話です。 あと、ASP.NET MVC で、VMをつくるんだ、とか素朴に思いました。 WPF,UWPといったリッチクライアントでは、反応をつくるため、VMをつくるけど・・・ Webなら、View側で、モデルから「.」を使ってアクセスすればいいじゃんとか、思うし、大体のシナリオは、それで十分じゃないかな。