Database JUNKY

MySQL,MariaDBを中心としたブログです

画像情報テーブルの作成 ~ソーシャルサービス系のDB構築

f:id:hit10231023:20160519173030j:plain

ソーシャルサービスにおいて、一番大切な部分はサービスの軸はなんなのか?です。instagramだったら写真ですよね。youtubeだったら、動画ですよね?facebooktwitterだったら・・なんでしょう(笑)

すべてのサービスにおいて、大切なのはコンセプトです

\例えば、東京⇔大阪[片道]2,800円~/
高速バス・夜行バスの予約は【ウィラートラベル】

どんなに洗練されたプログラムであっても、

どんなにすぐれたデータベースであっても

コンセプトがしっかりしていなければ、まったく意味がなく、さみしいサービスができちゃう危険性があります。

ただし、ここでは、サービスについて説明したいわけではないです。すみません

今回は、

画像を共有するソーシャル

みたいのをサンプルにして、考えてみようと思います

和牛にこだわった最高級ハンバーグを贈り物に

設計というほどのものではないですが・・・ 画像を共有するサービスをつくりたい!と考えた場合に、どのような要素が必要か考えてみます。

今のところ、ぱっと思いついたのが、

  • いつ
  • 誰が
  • どんな写真を

くらいですかね?あれ?まじでそんなものだけかもしれません(笑)

テーブル定義

とりあえず、軽いノリで作ってみました。

CREATE TABLE `articles` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `user_id` bigint(20) NOT NULL  DEFAULT '0',
  `path` VARCHAR(200) NOT NULL,
  `ext` blob,
  PRIMARY KEY (`id`),
  KEY `ix01_articles` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ;

あれれ、もうこれで話が終わっちゃった・・

テーブル設計的には、もうこれでこと足りそうですね

データを投入する

試しに3件登録しました

SET @user_id=1;
SET @path='https://www.pakutaso.com/assets_c/2016/05/OMG151007599299-thumb-autox1500-22246.jpg';
SET @ext=COLUMN_CREATE('description','マッサージの写真です') ;


INSERT INTO articles
(
user_id,path,ext
) VALUE 
(@user_id,@path,@ext) ;


SET @user_id=1;
SET @path='https://www.pakutaso.com/shared/img/thumb/HIRAkotatuneko_TP_V.jpg';
SET @ext=COLUMN_CREATE('description','こたつの中からこんにちわにゃ') ;


INSERT INTO articles
(
user_id,path,ext
) VALUE 
(@user_id,@path,@ext) ;

SET @user_id=2;
SET @path='https://www.pakutaso.com/shared/img/thumb/AI_IMG_7672_TP_V.jpg';
SET @ext=COLUMN_CREATE('description','香水と少し挑発的な横目線の女性') ;


INSERT INTO articles
(
user_id,path,ext
) VALUE 
(@user_id,@path,@ext) ;

登録結果

以下のような結果になりました

MariaDB [social]> SELECT * FROM articles \G                                
*************************** 1. row ***************************
        id: 1
created_at: 2016-05-19 17:25:20
updated_at: 2016-05-19 17:25:20
   user_id: 1
      path: https://www.pakutaso.com/assets_c/2016/05/OMG151007599299-thumb-autox1500-22246.jpg
       ext:  
                 description!マッサージの写真です
*************************** 2. row ***************************
        id: 2
created_at: 2016-05-19 17:25:20
updated_at: 2016-05-19 17:25:20
   user_id: 1
      path: https://www.pakutaso.com/shared/img/thumb/HIRAkotatuneko_TP_V.jpg
       ext:  
                 description!こたつの中からこんにちわにゃ
*************************** 3. row ***************************
        id: 3
created_at: 2016-05-19 17:25:20
updated_at: 2016-05-19 17:25:20
   user_id: 2
      path: https://www.pakutaso.com/shared/img/thumb/AI_IMG_7672_TP_V.jpg
       ext:  
                 description!香水と少し挑発的な横目線の女性

以上、でメインのテーブルの作成が終わりました。。と言いたいところですが、実際は、

タグをつけたいとか、

公開/非公開とか、

その他、もろもろ

の条件がついたりします。このあたりは、要件によりけりって感じですかね?

ディスク容量無制限で格安なレンタルサーバー