12
PHP講座(8) ソーシャルブックマークを作ろう(1) これより4回に渡ってソーシャルブックマークアプリケーションを作っていきます。 第一回ではテーブルの作成とデータの登録を行います。

06 ソーシャルブックマーク(1)

  • Upload
    -

  • View
    352

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 06 ソーシャルブックマーク(1)

PHP講座(8)!ソーシャルブックマークを作ろう(1)

これより4回に渡ってソーシャルブックマークアプリケーションを作っていきます。 第一回ではテーブルの作成とデータの登録を行います。

Page 2: 06 ソーシャルブックマーク(1)

IDEとは?

10.4.18 (C) 株式会社破滅派

2

Integrated  Development  Enviorment  

↓  統合開発環境  

・コードヒント  ・シンタックスカラーリング  ・検索、置換  ・FTPアップロード  ・バージョン管理システムとの連携  …その他もろもろ  

Eclipse  +    PDT  Aptana(オススメ)  Dreamweaver  Emacs,  Vim  

他にも色々ありますが、ツールに溺れないように!  

Page 3: 06 ソーシャルブックマーク(1)

MySQLの技術復習

10.4.18 (C) 株式会社破滅派

3

1.  作成する(  Create)  

2.  検索・取得する(Retrieve)  

3.  更新する(Update)  

4.  削除する(Delete)  

全部あわせてCRUDとか言ったりします。

Page 4: 06 ソーシャルブックマーク(1)

「ぺちぱブックマーク」の要件

10.4.18 (C) 株式会社破滅派

4

1.  登録したユーザーのみ利用できる(=ユーザーの新規登録がある) 2.  ユーザーは退会できる。 3.  ブックマークしたURLは集計される 4.  ブックマークしたURLにはタグをつけることができる 5.  タグは新規登録ができる。 6.  タグがすでに登録されている場合は同じものを使う。

これらの条件から必要なテーブルを考えていきます。重要な作業です。

Page 5: 06 ソーシャルブックマーク(1)

「ぺちぱブックマーク」のテーブル構造

10.4.18 (C) 株式会社破滅派

5

ID mail password created

1 [email protected] mememna 1990-­‐05-­‐05  14:00:00

2 [email protected] saTejkh 1975-­‐08-­‐22  22:02:00

3 [email protected] auifsheoifajos 1960-­‐12-­‐11  00:00:00

ID user_id url created

1 12 http://example.jp 1990-­‐05-­‐05  14:00:00

2 14 http://example.com 1975-­‐08-­‐22  22:02:00

3 16 http://example.jp 1960-­‐12-­‐11  00:00:00

ID user_id tag_id bookmark_id

1 1 2 1

2 4 5 1

3 1 6 4

ID user_id name created

1 1 これはすごい 1990-­‐05-­‐05  14:00:00

2 4 php 1975-­‐08-­‐22  22:02:00

3 1 pear 1960-­‐12-­‐11  00:00:00

ユーザーテーブル  pb_users

ブックマークテーブル  pb_bookmarks

タグテーブル  pb_tags

データ紐付け用テーブル  pb_relationships

※テーブル名には接頭辞をつけましょう。  普通はプロジェクト名+アンダースコアです。  

Page 6: 06 ソーシャルブックマーク(1)

1.ユーザー情報の管理

10.4.18 (C) 株式会社破滅派

6

ID mail password created 1 [email protected] mememna 1990-­‐05-­‐05  14:00:00 2 [email protected] saTejkh 1975-­‐08-­‐22  22:02:00 3 [email protected] auifsheoifajos 1960-­‐12-­‐11  00:00:00

主キーと呼ばれるその行を特定するフィールドは、一般的に以下の属性を持ちます。  PRIMARY  KEY(主キー)  AUTO_INCREMENT(自動増加)

パスワードを格納するとき  パスワードをデータベースに格納するとき、通常はハッシュ(不可逆的暗号化)して格納します。  パスワードをそのまま入れてしまうと、データベースが流出したときにパスワードそのものが流出してしまいます。  

1.  登録したユーザーのみ利用できる(=ユーザーの新規登録がある) 2.  ユーザーは退会できる。

ユーザーのログイン名にはメールアドレスを使います。

Page 7: 06 ソーシャルブックマーク(1)

2.ブックマーク情報の管理

10.4.18 (C) 株式会社破滅派

7

ID user_id url created 1 12 http://example.jp 1990-­‐05-­‐05  14:00:00 2 14 http://example.com 1975-­‐08-­‐22  22:02:00 3 16 http://example.jp 1960-­‐12-­‐11  00:00:00

主キーと呼ばれるその行を特定するフィールドは、一般的に以下の属性を持ちます。  PRIMARY  KEY(主キー)  AUTO_INCREMENT(自動増加)

1.  ユーザーはブックマークを登録できる(暗黙の前提)

ユーザーのIDを登録しておくことで、後で検索に利用できます。

Page 8: 06 ソーシャルブックマーク(1)

3.タグ情報の管理

10.4.18 (C) 株式会社破滅派

8

ID user_id name created 1 1 これはすごい 1990-­‐05-­‐05  14:00:00 2 4 php 1975-­‐08-­‐22  22:02:00 3 1 pear 1960-­‐12-­‐11  00:00:00

主キーと呼ばれるその行を特定するフィールドは、一般的に以下の属性を持ちます。  PRIMARY  KEY(主キー)  AUTO_INCREMENT(自動増加)

1.  タグは新規登録ができる。 2.  タグがすでに登録されている場合は同じものを使う。

ブックマークと同じ原理です。

Page 9: 06 ソーシャルブックマーク(1)

4.タグとブックマークの紐付け

10.4.18 (C) 株式会社破滅派

9

ID user_id tag_id bookmark_id 1 1 2 1 2 4 5 1 3 1 6 4

主キーと呼ばれるその行を特定するフィールドは、一般的に以下の属性を持ちます。  PRIMARY  KEY(主キー)  AUTO_INCREMENT(自動増加)

1.  ブックマークしたURLにはタグをつけることができる

この3つのフィールドを入れることで、「誰がどのブックマークになんというタグをつけたのか」がわかります。

Page 10: 06 ソーシャルブックマーク(1)

関数による再利用

10.4.18 (C) 株式会社破滅派

10

ぺちぱブックマークのように複雑なサービスでは、似たような処理が何度も出てきます。

自分で関数を作って、同じ処理を書かないで済むようにします。

URLが正しい値かどうかチェックして、データベースに接続して…  似たような処理が多いな…  これを一々コピペするのは面倒だから、一つのファイルにまとめておこう。

Page 11: 06 ソーシャルブックマーク(1)

関数の文法

10.4.18 (C) 株式会社破滅派

11

function  hoge($foo,  $bar…){    //ここでなんか処理を行う    return  $fuga;  

}

引数。なくてもいいし、なんこあってもいい。 関数名 関数宣言

戻り値(なくてもいい)

一度作った関数は何度でも呼び出すことができます。

Page 12: 06 ソーシャルブックマーク(1)

定義済み関数

10.4.18 (C) 株式会社破滅派

12

PHPには定義済みの関数がたくさん(4000ぐらい)あります。  人間が考えることは大体同じなので、基本的なものはほとんど揃っています。  

1.  文字列の数を数えたい  2.  配列を並べ替えたい  3.  ファイルをコピーしたい  4.  画像を白黒にしたい  5.  メールを送りたい  

まずは「こういう関数はないかな?」  と探してみることから始めましょう。