ヘルプが必要-PHPスケジューラクラスのブレインストーミング


8

私は、PHPクラスをゼロから作成したことがありません。でも、どこかから始めないといけないと思いますよね?アイデアはありますが、ロジックの助けが必要です。ご感想をお聞かせください。以下は明らかに速記です。計画段階。

Class - 
 -> type (recurring, single, day)
 -> Recurring days (4,2,3,4,1,2....etc. for odd schedules- need even pairs)
 -> Shift Type (onshift, vacation, medical, etc...)
 -> Emp Id
 -> Start
 -> End
 -> Location Id
 -> Hours per day
 -> Day start time

 get schedule ( by account/location/company/unit/crew/individual )
      select single entries
      separate array into days (1 day) increments
      if single entries have linking day entries, replace array with day entry information
      return mysql array of days for the time period;

 set schedule ( dates, emp id)
      if recurring
          if already exisits || conflicts with existing
              error
          create recurring template in db table
          create single db entries using recurring days for 1 year
      if single
          if date is between dates already in db || more than 1 year out
              error
          else
              insert into db
      if day
          if no existing single range
             error
          else
             insert into db under day table, with id linking to id of existing single.

 remove recurringOnly(emp id)
      delete all entries with recurring id

 remove all entries( from this date forward, emp id )
      delete entries with start date > date

 cronUpdate( cron start / end dates)
      if cron start / end dates
           delete anything with dates bigger than nextUpdate (to make sure no errors)
           select recurring db entries with nextUpdate between cron start/ end
           insert into db the next set of "recurring days" for the employee
           update nextUpdate date for employee
      else - error
php  mysql 

疑似コードの場合は+1。ただし、どのロジックを使用してヘルプを探しているのかを具体的に説明できますか?
ジョーダン

ローガン、これを正しい方法で実行したいと考え、実際にプロセスをブレインストーミングしたことを称賛します。私はあなたのようなユーザーが大好きです。しかし、正確には何が必要ですか?
Levi Morrison

getのスケジュールについて緊張しています。1日単位で分割しています。特に部署全体のスケジュールを取得する場合は、CPUにかなり負荷がかかる可能性があると思います。また、ページに戻される大量のデータになります。しかし、私は調整された個々の日の情報を更新できるようにする他の方法を見ることができません。

@Logan:クラスのUMLクラス図を作成できますか?それはより良い助けになるでしょう。
ビクター

回答:


1

リストした最初のデータは属性である可能性があります。属性をプライベートに、ゲッターおよびセッターメソッドをパブリックに設定することを忘れないでください。次に、すでに取得しているこれらのアルゴリズムに基づいてメソッドを作成できます。プロジェクトの編成に役立つように、クラスと同じ名前の単一のファイルにクラスをコーディングするのは良い考えです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.