画像情報テーブルの作成 ~ソーシャルサービス系のDB構築
ソーシャルサービスにおいて、一番大切な部分はサービスの軸はなんなのか?です。instagramだったら写真ですよね。youtubeだったら、動画ですよね?facebookとtwitterだったら・・なんでしょう(笑)
すべてのサービスにおいて、大切なのはコンセプトです
\例えば、東京⇔大阪[片道]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!香水と少し挑発的な横目線の女性
以上、でメインのテーブルの作成が終わりました。。と言いたいところですが、実際は、
タグをつけたいとか、
公開/非公開とか、
その他、もろもろ
の条件がついたりします。このあたりは、要件によりけりって感じですかね?