- ベストアンサー
ログイン機能カレンダー
phpで質問です。 カレンダーを作ったのですが、 ログイン機能でユーザーを認識させた予定表です。 1. 予定を管理(書き込んだり変更したり)にはphpとデータベースですよね? 2. 例えば、 5月1日の予定を書き込むにはどのようなテーブル設計にすればいいですか? その月だけじゃなくて最長その年度の予定を書き込めるようにしたいです。 過ぎた月は数ヵ月保存しておいて、後に破棄できるようにしたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>iCalendarというフォーマットに会わせるために、 そういうことです。 カラム名・並び順はコンバートするときに変えればいいので、完全に一致している必要はありません。 iCalendar形式を採用しておけば、Googleカレンダーからの移行、その逆に自分のアプリをやめて別のカレンダーに乗り換えたいとかといったことが容易にできる、ということです。
その他の回答 (2)
- hogehoge78
- ベストアンサー率80% (433/539)
t_ohtaさんの回答に捕捉します。 iCalendarは、RFCで標準化されたスケジュール管理用のフォーマット(ファイル)形式です。 RFCとは、 ----引用------- インターネット技術の標準的な仕様を記した文書のこと。インターネット技術を議論し標準化を進める任意団体「IETF(Internet Engineering Task Force)」が作成し、インターネット上で公開している。 --------------- https://www.otsuka-shokai.co.jp/words/rfc.html 一つのファイルで、個々の予定を記述するというもので、OutlookやGoogleカレンダーなどで利用することができるようです。 つまり、後々のことを考えて、このiCalendar形式に変換可能な形(変換するに足りる情報・フォーマット)でデータベースに保存すればよいのでは、というのがt_ohtaさんの回答です。 フォーマットについては、RFCを見るのが良いんですが、がちがちの仕様が書いてあるので、読むのが大変です。 https://tex2e.github.io/rfc-translater/html/rfc5545.html ↑日本語訳付きのRFC iCalendar形式について説明をされているQiita記事が参考になるかもしれません。 https://qiita.com/TomOse/items/31b5fb4782f06d19af79 または、お持ちのGoogleカレンダーで、予定を(なければいくつか予定いれて)「設定」→「エクスポート」でicsファイルでダウンロードできるのでどんなもんか見てみるとよいと思います。 というのが、前提で、大体以下の項目がテーブルに入っていればよいということのようです。 DTSTART: 予定開始日時 DTEND: 予定終了日時 DTSTAMP: 順序付けに使う日時らしい UID: 順序付けにつかうらしい CREATED: 作成日 DESCRIPTION: 予定の詳細な内容 LAST-MODIFIED: 修正日 LOCATION: 予定が発生する場所 SEQUENCE: UIDと組み合わせて使うらしい STATUS: 3.8.1.11. 状態(RFC参照) SUMMARY: 予定のタイトル TRANSP: 3.8.2.7. 時間の透明性(RFC参照) これに加えて、マイページ機能の中で使っている、ユーザIDとかアプリケーション独自に必要なものを追記する形でよろしいかと思います。 あとは各々の予定をどのように画面に出力するのかしたいのか、から逆算していく形ではないかなと、思います。
補足
ありがとうございます。 少し気になるところを質問させてください。 iCalendarというものを始めてみたので調べて見たのですが、データペースの型ではなく iCalendarというフォーマットに会わせるために、 以下のようなテーブル構成にするということでしょうか? DTSTART: 予定開始日時 DTEND: 予定終了日時 DTSTAMP: 順序付けに使う日時らしい UID: 順序付けにつかうらしい CREATED: 作成日 DESCRIPTION: 予定の詳細な内容 LAST-MODIFIED: 修正日 LOCATION: 予定が発生する場所 SEQUENCE: UIDと組み合わせて使うらしい STATUS: 3.8.1.11. 状態(RFC参照) SUMMARY: 予定のタイトル TRANSP: 3.8.2.7. 時間の透明性(RFC参照)
- t_ohta
- ベストアンサー率38% (5238/13705)
1. PHPとデータベースでいいと思います。 2. スケジュール管理のデータフォーマットに「iCalendar」という統一フォーマットがあります。 賢い人たちが議論して決めたフォーマットですから、これに準じた形でデータを保持するのが機能的で効率的だと思います。 iCalendar で検索すると資料が沢山ありますし、PHP用のライブラリもいくつか存在します。
お礼
ありがとうございました。