2012-02-04 43 views
0

私のPHPアプリケーションは「イベント」を管理します。私はプライベートvarメンバーとして必要なすべてのイベント属性を定義するクラスを持っています。各varメンバーはセッターを介して検証を実行するため、イベントのすべての値が有効です。最後に、これらのセッターを使用してイベントの新しいインスタンスを作成するファクトリメソッドがあります。メソッドは追加の検証を実行し、クラスの新しいインスタンスを作成するときに必要なすべての属性が存在することを確認します。データベース番号の自動番号付けまたはカスタム番号

ここに私の質問が来る。

すべてのイベントにはIDが必要です。このIDは、イベントが挿入されたときにデータベースによって作成されるため、イベントが作成されたがまだ挿入されていない瞬間にはIDはありません。ファクトリメソッドですべての検証が行われているので、データベースに挿入する仮イベントを作成するだけで他のメソッドでそのコードを複製したくありません。

物事を行う理由は何ですか?

  • 私自身のイベント番号を管理しているので、イベントをデータベースに挿入する前に持っていますか? データベースが私のためにそれをとてもうまくできたら、イベントのナンバリングシステムを作ったのはなぜですか?

  • id-lessイベントを許可する、まだデータベースに挿入されていないイベントのファクトリメソッドはありますか? データベースの状態に応じて、必要な/ notRequiredの属性を持つプログラムロジックを複雑にするのはなぜですか?

注:申し訳ありませんが、私はこの質問に対して適切なタグを選択できませんでした。

答えて

1

あらかじめ定義されたID-sを使用せずに管理できる場合は、そのようにしてください。 一方、idは自動インクリメント値で設定されているテーブルを使用していると推測しています。 データベースからその値を選択すると、イベントIDは自動インクリメントID + 1になります

+0

データベースから値を読み取るヒントです。もう少しオプションを待っています。 –