【質問編集】
以前の質問が不十分過ぎましたのでもう一度質問させていただきます。
★現在作成中のSNSサイトについて
相互フォローのユーザーのみ投稿を閲覧できる。
いいね、いいねの解除ができる。
FBと同じ友達かも機能
FBと同じ共通の友達機能
ザックいりとはこのような感じです。ここでの質問に関係しているのは上の二つ(特にいいね)です。
PHP
1<?php 2 3class Posting 4{ 5 public $id = ''; 6 public $userid = ''; 7 public $body = ''; 8 9 public function __construct($id, $userid, $body) 10 { 11 $this ->id = $id; 12 $this ->userid = $userid; 13 $this ->body = $body; 14 } 15} 16
PHP
1<?php 2 3class User 4{ 5 public $id = ''; 6 public $name = ''; 7 8 public function __construct($id, $name) 9 { 10 $this ->id = $id; 11 $this ->name = $name; 12 } 13} 14
SQL
1CREATE TABLE `postings` ( 2 id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 userid int(11) NOT NULL, 4 body varchar(1000) NOT NULL, 5 time datetime NOT NULL 6);
SQL
1CREATE TABLE `user` ( 2 userid INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 name varchar(100) NOT NULL, 4 pass varchar(100) NOT NULL 5) ;
これらが関係しているSQLテーブルとオブジェクトのクラスです。
質問❶
今いいね、いいね解除追加のためにpostingsテーブルにいいねのの数を保存するlikeカラム(いいねで数が増え、解除で数がへる)と
誰がいいねしたのかを把握するカラムを追加しようと考えていたのですが、
以下のようなlikeテーブルを作った方が得策でしょうか。
SQL
1CREATE TABLE `likes` ( 2 `id` bigint(20) NOT NULL AUTO_INCREMENT, 3 `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, 4 `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 5 `article_id` bigint(20) NOT NULL DEFAULT '0', 6 `user_id` bigint(20) NOT NULL DEFAULT '0', 7 PRIMARY KEY (`id`), 8 UNIQUE KEY `ix01_likes` (`user_id`,`article_id`), 9 KEY `ix02_likes` (`user_id`), 10 KEY `ix03_likes` (`article_id`) 11) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ;
質問❷
又この場合、created_atとupdated_atの違いはなんでしょうか。
質問❸
created_atとupdated_at にそれぞれプライマリーキーがついていますが、
これは(1,3),(2,4),(4,2),(3,1)という値があった場合、数字の組み合わせがキーであると考えていいですか。
回答4件
あなたの回答
tips
プレビュー