2017-05-01 7 views
0

私はJava EE(JDBC、MVC、DAO)とMySqlを使用しています。は、mysqlデータベースに情報を保存するための助言が必要です

私は自分のプロジェクトを作っているので、すべてのアーキテクチャの設計 - 私の責任です。

私は私が実体通性、もちろん、講師と開始と期間について、その店舗の情報を持っているシステム「通性」を、持っています。

これで、「ステータス」フィールドにWait(開始されていない)、StartedおよびEndedが格納されます。

これは場所ですが、問題があります:どのように情報を更新する必要がありますか?もちろん

、それは管理者に、この機能を提供することが可能であるが、それは効率的で簡単ではないように思われます。

私はアイデアがある - DBに格納しないフィールド「ステータス」を、しかし(開始日/時間をチェックすることによって)モデルのエンティティにどのような状態を確認します。

MVCパターンを使用していますが、このメソッドをクラスに追加するのが正しいかどうかは不明です。

ありがとうございます。

答えて

0

これは実際にモデリングしている「世界」の問題です。

  1. スケジュールされた時間にコースを開始できないことはありますか?

  2. 明示的にモデル化しますか?

これらの質問の両方に対する答えが「イエス」である場合には(単に)の開始日と終了日(現在の日付)に由来するとして、あなたはstatusフィールドを処理することはできません。同様に、日付に基づいて(派生していない)statusフィールドを自動的に設定することは疑わしいです。

それは特定の時間に行われる必要があるので、一方...行政statusを設定することは、あまりにも悪いアイデアだろう。すなわち講義が実際に始まるときである。

しかし実際には、これを実際にモデリングすると、データベースの情報と実際に現実世界で起こっていることとの間に「ギャップ」があることを正確に認識する必要があります。データベースが100%正確であることを保証することは(おそらく)実用的ではありません。したがって、の実用的なソリューションは、それを受け入れることです:それをシステムの「機能」にします。

あなたは実用的な見解を取る場合は、statusが派生作ることは十分に良いことがあります。 (notional_statusか何かに社名を変更し、scheduled_startscheduled_endか何かにstartendフィールドを変更します。)

+0

ありがとうございます!非常に有用なアドバイス! –

0

開始日と終了日(または所要時間)を格納し、ステータスを導出することが私に最も合理的です。

主な利点は、データが文句を言わないWaitからStartedStartedからEndedに状態遷移として更新され、時間が経過するにつれて自然にちょうど自分自身の世話をする必要があります。

+0

"ステータスを導出する" - あなたはクラスではなく、データベースから取得することを意味しますか? –

+0

ありがとう!非常に有用なアドバイス! –

関連する問題