質問: Model設計に関する質問です。 terateilのようなQ&Aサイトを作ろうと考えたときに、そのモデルとして`User`クラスのようなものを考えることができると思います。その他に`Question`クラスや`Answer`クラスなどがあると思いますが、この場合`User`クラスがものすごく大きくなってしまってしまうと思ったのですが、この場合どのような設計というのが良いと思われますか? 今の所、例えばterateilのようなQ&Aサイトを作るときに上記3つのモデルしか思いつかないのですが、皆さんはどのようにお考えでしょうか? よろしければ回答お願いします。 補足です。 ``` public class User { List snsIdList; String name; String password; String introduction; String pathOfPicture; String introduction; List badgeList; List tagList; List clipList; int score; } ``` こんな感じのものを想定しています。実際に作ってみると、そんなに大きくもない気がしますが(すみません、質問する前に実際に作ってみるべきでした。)、このような感じしょうか。
回答: Tag クラス カテゴリー制御に必要ですね Clip クラス クリップ情報を保持するものです。 Score 履歴クラス 誰が誰をいつどのように評価したか 評価毎に1レコードな感じです。 Userクラスに評価の数値だけ入れてしまうと月間ランキングとか作れないですしこのレコード保持方法もありかと思います。 AnswerとQuestionには自動保存機能があるっぽいので _temporaryテーブル作るか各テーブルのフラグで分けるかという所。 あとはランクとかもあるのですが、リアルタイムで計算するのか バッチで実装するかはサイトの規模感によってどっちがいいかなーというところですね。 さっと見て思いついたのはこれくらいです。