はじめに
就職して2週間程度たち、日々勉強の毎日の中でCRUDの仕組みが色んな分野で扱われていることに気づいたのでその話を少し書いてみます。
初心者なりに調べて考えた中で、記述しているのでざっくりしている内容だと思いますが、概要やイメージがし易くなって理解の役に立てたら幸いです。
CRUDってどいう意味?
CRUDとは、Create(生成)、Read(読み取り)、Update(更新)、Delete(削除)の4つの単語の頭文字を繋げた言葉です。この4つの単語の操作がwebアプリの仕組みと言ってもいいのかも知れません。
クラッド (CRUD)
https://wa3.i-3-i.info/word123.html
CRUDが実際にどんなところで扱われているか?
CRUDって実際にどこで使われてるのか?
ですが、具体的にTwitterで考えてみます。
Create(生成)
「生成=作る」と言ってもいいと思います。
Twitterで言うと、「Twitterアカウントを新たに作る」、「新しくツイートする」、「新しくフォローする」…etcと言った操作のことです。
もう少し細かく見ていくと以下のようになると思います。
Twitterアカウントを新たに作る
これは「Twitterのアカウント」というデータを作成(生成)しています。
新しくツイートする
これは「ツイート」というデータを作成(生成)しています。
新しくフォローする
これは少し難しい考え方かも知れませんが、「フォロー」というユーザー間の「関係性」を作成(生成)しています。
このようにCreate(生成)という機能は「新たに作ったり登録したりする機能」のことです。
Read(読み取り)
「読み取り=データを読み込んで表示する」というと分かり易くなるかも知れません。
Twitterでいうと、「タイムラインでフォローした人のツイートを時系列順に一覧のようにして表示」していたり、「フォローしたユーザー、フォロワー(自分をフォローしているユーザー)を一覧で表示する」、「アカウント画面にいくとその人のツイートが一覧表示されている」…etc と言った機能のことです。
もう少し細かく見ていくと
タイムライン
自分自身がフォローしているユーザーのツイートを一覧で表示している(読み込んだものを表示)。
フォローしたユーザー、フォロワーの一覧
これも上記のように自分がフォローという関係性を作成した他のユーザー情報を一覧として表示している(読み込んだものを表示)。
フォロワーの場合も、「自分に対してフォローする行為を行うという関係性を作ったユーザーを一覧として表示している(読み込んだものを表示)。
自分のツイートの一覧
自分のツイート一覧も上記同様に、自分が投稿したツイートを一覧として表示している(読み込んで表示)。
このように、データを読み取り表示するような操作がRead(読み取り)という機能になります。実際には、読み込んだデータをHTMLなどで表示している訳なので、データベースからデータを取得する行為といえばイメージしやすいかも知れません。
Update(更新)
「更新=上書き、編集」と考えると分かりやすいと思います。ここで注意なのが作成と似ていますが、更新という操作は既存のデータを上書きする操作ですので、事前にデータが存在していないと行えない操作です。
Twitterでいうと「アカウント情報の編集」が当てはまると思います。ツイートは編集ができなかった気がしたので…。
アカウント編集
アカウント編集という操作は、「事前に作成したアカウントデータの中身を書き換える、編集する」という操作を表します。
このように、事前に作成したデータを編集する操作がUpdate(更新)となります。少し言い方を変えると、Create(生成)という操作があって、初めて成立する操作がUpdate(更新)だとも言えるかと思います。
Delete(削除)
「削除」はもうそのまま、読んで字のごとくですね笑
Create(生成)したデータを「消すこと」です。Twitterで考えると、「ツイートを削除する」、「アカウントを削除(退会?)」、「フォローを解除」…etc などの機能です。少し細かく説明して見ると以下のようになると思います。
ツイート削除
投稿したツイートを取り消し、なかったことにする(削除)。
アカウント削除
自分のアカウントデータを取り消し、なかったことにする(削除)。
フォロー解除
フォローという他のユーザーとの関係性を取り消し、なかったことにする(削除)。
このように、削除はそのままの通りで、その情報を「無かったことにすること」となります。
日常生活にも?
このCRUDはHTTPの通信でもHTTPメソッドなどでも扱われていたりするそうで、webアプリに限った話ではないということも最近知りました。
また、CRUDは日常の動作とかにも置き換えられるのでは?と思いました。
例えば、車の話で考えると…
- 車を購入することが「Create」
- 車を運転(車を扱う=データを読み取り扱う?)することが「Read」
- 車の修理が「Update」
- 車を手放すことが「Delete」
と言った感じで置き換えられるかも知れません。Readだけ少し無理やり感ある気もしますが…^^;
なので、CRUDというのはある意味4つの概念的な物として考えられるし、この仕組みが全てなのではないかと個人的に思っています。
まとめ
webアプリはCRUDという機能が基本となって、各分野ごとのCRUDが絡まって一つのアプリとして形成しているのかなと思います。
また、CRUDという機能は、色々な機能や操作の根本となる概念的なものなのでは?と個人的に思いました。
コメント
コメント一覧 (2件)
[…] Rest APIに対してHTTP通信を行って、データを取得、登録、更新、削除などのCRUD操作を行うようなアプリを開発する際に、HTTP通信の確認やテストが行えるツールです。 […]
[…] Rest APIに対してHTTP通信を行って、データを取得、登録、更新、削除などのCRUD操作を行うようなアプリを開発する際に、HTTP通信の確認やテストが行えるツールです。 […]