CRUDを実際に運用する時にいれるべき機能

CRUDは様々なシステムの基本かつ重要なデータベース操作

Create(新規作成)

Read(参照)

Update(更新)

Delete(削除)

の4つ。

ここではCRUDについて細かい説明はせず、実際にCRUDを作るときに入れておくとユーザビリティが上がる機能を紹介します。

Create(新規作成)・Update(更新)

必須機能

  • フォームバリデーション
    サーバー側でDB登録前にバリデーションを行うのは当然なのですが、クライアント側でもバリデーションは行うべきです。今だとjQueryのライブラリで簡単に導入が可能です。

あったら便利な機能

  • 住所自動入力
    顧客情報登録時などで、住所の項目がある場合は郵便番号から住所の自動入力があると便利。ajaxzip3.jsなどが有用
  • 連続作成の入力省略
    複数のレコードを一部同じ内容で連続作成したい場合、内容が同じところは1度入力すると2度目以降は入力不要にすると登録する人は助かります。
    やり方としては、セッションやクッキーを使う、hidden属性で入力内容を引き回すなどで実装できます。

その他

個人的な意見ですが、登録確認画面・登録完了画面は場合によっては不要です。よくある登録の流れとして登録画面→確認画面→登録完了画面がありますが確認画面できちんと確認する人は少ないです。また、登録完了画面もパブリックに公開しているサイトの問い合わせフォーム等の場合は有った方がいいと思いますが、社内のみでしか使わないシステムの場合は「いちいち完了画面から参照画面に戻るのがめんどくさいからいらない」と言う人もいるのでいらないかなと思います。DBに登録したらパラメータを付けて参照画面にリダイレクトをかけて「登録をしました。ID:XXXXX」みたいな表示を出すだけにしたりしてます。

Read(参照)

後日追記

Delete(削除)

必須機能

  • 削除確認ダイアログ
    削除ボタンを参照画面・編集画面どちらに置くにせよボタンを押されたときに本当に削除していいのか、ダイアログは絶対に必要です。

その他

データベースの話になりますが、削除をするとき色々な方法が考えられます。単純にDELETEする、DELETEフラグを付与するなどですが私がよく使うやり方は削除済みテーブルを別に作って置き元テーブルからDELETEされたレコードを追加する。一定期間たてば削除済みテーブルをバックアップファイルに移して空にする。これをすると元データから不要なレコードが消え容量もあまり増えないです。
削除されたデータを削除済みテーブルに登録するのはSQLのトリガを使います。