読者です 読者をやめる 読者になる 読者になる

Cluex Developersブログ

株式会社Cluexでは、子育てをするママのためのメディア - mamanoko(ままのこ)をRuby on Railsで運営しております。

データベースの社内勉強会を実施しました!

はじめに

こんにちは、ディレクターの清水です。 現在、cluexにてインターンを始め半年が経ちました。日々の業務としての編集の仕事は一通り身につき、最近では「毎日仕事を改善していく」ということが身についてきた頃であります。

社内勉強会の開催

・mamanokoのリニューアル

mamanoko.jp

mamanokoは10/24にサイトのリニューアルを行い、それに合わせて開発陣、ディレクター陣ともに忙しい毎日を過ごしております。

・忙しさも落ち着かぬころ、

そんな忙しい毎日が落ち着かない中ではありましたが、「社内勉強会」と称して、データベースに関する知識の共有をしてもらいました。 具体的には、posticoを使用した「データベース」の操作について講座を開いてもらいました。

なぜやったか

社内勉強会には2つの良い効果があると思います。

  1. 社内勉強会によって知識の共有を行ってことによるcluexの開発力が底上げされる。

  2. ディレクターも同様に技術的な知識をつけることで、開発とディレクターのリレーションが図りやすくなる。構造や機能に関してある程度の知識があることで、スムーズなコミュニケーションでにサイトの改善点を開発に伝えることができる。

社内勉強会の概要

f:id:cluex-developers:20151101203405j:plain ツール:postico
場所:オフィス
時間:1時間程度
人数:6人
すること:データベースから自分の欲しい情報を呼び出す (今回は、mamanokoにある何万もの記事の中から、View数(閲覧数)の少ない記事を抽出する作業を行いました。 )

学んだこと

今回の勉強会で3つのことを学びました。
f:id:cluex-developers:20151101203620j:plain

1. データベース上で行える行動

SQLという言語で書かれたデータベースでは4つの行動ができます。CRUD(Create, Read, Update, Delete)と呼ばれ、それぞれ「データの作成(Create)、読み出し(Read)、更新(update)、削除(Delete)」を表しています。

今回私たちが行っていくのは、「読み出し(Read)」です。

2. 実際のデータベースの構造

私たちがウェブサイト上で見ている、記事のタイトルや説明文、本文、ユーザー情報から口コミ情報まですべてデータベースに格納されています。実際にposticoによってデータベース内を閲覧し、デーブルの数やテーブル名、その中身が、実際のサイト上での表記とどうやってリンクしているをイメージすることができました。

DB> テーブ >情報 といった感じですべての情報が格納されており、それぞれの情報はエクセル表のように構成されています。行をレコードといい、列をカラムと呼ぶそうです。弊社でインターンを始めてから「カラム」という言葉を300回くらい聞いてきたのですが、その言葉の意味がやっと分かり、すっきり感が半端なかったです^^

3.データの呼び出し方

select (カラム名) from (table名)

このようなデータを呼び出すときの文字列(コード)をクエリと呼びます。これは「要求」という意味で、呼び出す行動は「クエリを発行する」と呼びます。これであるtableという集合から、あるカラムの情報を呼び出すことができます。例えば select id from articles とすれば、articles(弊社の場合は、記事情報のtable)から、id(弊社の場合は、記事の番号情報のカラム)を呼び出せます。

さらに select (カラム名) from (table名) where(カラムについての条件文)

とする条件式を加えることで、取り出した情報をさらに絞ることができます。例えば、 select id from articles where (id < 4000) とすれば、先ほどのデータから記事番号が4,000以下のものに絞られます。

条件分岐式はいろいろな方法で書くことができます。下記にその基本的な例を2つ紹介します。

where( id like %5%) これは曖昧分析といって、idに5が含まれるものを抽出することができます。「%」は任意の文字数の任意の文字という意味であり、「54」「2354」「435」など5を含む数字がすべて該当します。

where( id like %5% and id < 4000)) これはもうおわかりだと存じますが、複数条件を「and」によってつなぐことができます。これによって得られるのは、記事番号が4000以下のもので番号に5がつくものです。またand以外にもorbetweenなどで複数条件を指定することができます。

今回は上記の条件などを複数組み合わせたクエリを発行し、記事一覧からView数の低い記事をひっぱることができました。

その後

勉強会の後、実際に自分ひとりで「タイトルに”体験談”と付く記事」を洗い出してみました。簡単なものでしたが、その際に使用したコードを以下の通りです。

select * from articles where (title like '%体験談%' )

まとめ

データベース構造をイメージできたのが一番良い経験でした。今後は開発の知識を増やしていくことで、ディレクションの幅も増えてくると感じます。

まだまだ初歩的な内容の紹介になってしまいましたが、社内勉強会様子を紹介させて頂きました! 同じよう境遇の人たちの役にたったら幸いです。

清水