質問編集履歴
2
質問の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -132,6 +132,8 @@
|
|
132
132
|
|
133
133
|
|
134
134
|
|
135
|
+
質問❶
|
136
|
+
|
135
137
|
今いいね、いいね解除追加のためにpostingsテーブルにいいねのの数を保存するlikeカラム(いいねで数が増え、解除で数がへる)と
|
136
138
|
|
137
139
|
誰がいいねしたのかを把握するカラムを追加しようと考えていたのですが、
|
@@ -168,6 +170,14 @@
|
|
168
170
|
|
169
171
|
```
|
170
172
|
|
173
|
+
質問❷
|
174
|
+
|
175
|
+
又この場合、created_atとupdated_atの違いはなんでしょうか。
|
171
176
|
|
172
177
|
|
178
|
+
|
179
|
+
質問❸
|
180
|
+
|
173
|
-
|
181
|
+
created_atとupdated_at にそれぞれプライマリーキーがついていますが、
|
182
|
+
|
183
|
+
これは(1,3),(2,4),(4,2),(3,1)という値があった場合、数字の組み合わせがキーであると考えていいですか。
|
1
質問の不備
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,23 +1,173 @@
|
|
1
|
-
|
1
|
+
【質問編集】
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
以前の質問が不十分過ぎましたのでもう一度質問させていただきます。
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
|
9
|
+
★現在作成中のSNSサイトについて
|
10
10
|
|
11
|
-
|
11
|
+
相互フォローのユーザーのみ投稿を閲覧できる。
|
12
12
|
|
13
|
+
いいね、いいねの解除ができる。
|
14
|
+
|
13
|
-
|
15
|
+
FBと同じ友達かも機能
|
16
|
+
|
17
|
+
FBと同じ共通の友達機能
|
14
18
|
|
15
19
|
|
16
20
|
|
17
|
-
|
21
|
+
ザックいりとはこのような感じです。ここでの質問に関係しているのは上の二つ(特にいいね)です。
|
18
22
|
|
19
23
|
|
20
24
|
|
21
|
-
|
25
|
+
```PHP
|
22
26
|
|
27
|
+
<?php
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
class Posting
|
32
|
+
|
33
|
+
{
|
34
|
+
|
35
|
+
public $id = '';
|
36
|
+
|
37
|
+
public $userid = '';
|
38
|
+
|
39
|
+
public $body = '';
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
public function __construct($id, $userid, $body)
|
44
|
+
|
45
|
+
{
|
46
|
+
|
47
|
+
$this ->id = $id;
|
48
|
+
|
49
|
+
$this ->userid = $userid;
|
50
|
+
|
51
|
+
$this ->body = $body;
|
52
|
+
|
53
|
+
}
|
54
|
+
|
55
|
+
}
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
```PHP
|
64
|
+
|
65
|
+
<?php
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
class User
|
70
|
+
|
71
|
+
{
|
72
|
+
|
73
|
+
public $id = '';
|
74
|
+
|
75
|
+
public $name = '';
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
public function __construct($id, $name)
|
80
|
+
|
81
|
+
{
|
82
|
+
|
83
|
+
$this ->id = $id;
|
84
|
+
|
85
|
+
$this ->name = $name;
|
86
|
+
|
87
|
+
}
|
88
|
+
|
89
|
+
}
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
```
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
```SQL
|
98
|
+
|
99
|
+
CREATE TABLE `postings` (
|
100
|
+
|
101
|
+
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
102
|
+
|
103
|
+
userid int(11) NOT NULL,
|
104
|
+
|
105
|
+
body varchar(1000) NOT NULL,
|
106
|
+
|
107
|
+
time datetime NOT NULL
|
108
|
+
|
109
|
+
);
|
110
|
+
|
111
|
+
```
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
```SQL
|
116
|
+
|
117
|
+
CREATE TABLE `user` (
|
118
|
+
|
119
|
+
userid INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
120
|
+
|
121
|
+
name varchar(100) NOT NULL,
|
122
|
+
|
123
|
+
pass varchar(100) NOT NULL
|
124
|
+
|
125
|
+
) ;
|
126
|
+
|
127
|
+
```
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
これらが関係しているSQLテーブルとオブジェクトのクラスです。
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
今いいね、いいね解除追加のためにpostingsテーブルにいいねのの数を保存するlikeカラム(いいねで数が増え、解除で数がへる)と
|
136
|
+
|
137
|
+
誰がいいねしたのかを把握するカラムを追加しようと考えていたのですが、
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
以下のようなlikeテーブルを作った方が得策でしょうか。
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
```SQL
|
146
|
+
|
147
|
+
CREATE TABLE `likes` (
|
148
|
+
|
149
|
+
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
150
|
+
|
151
|
+
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
152
|
+
|
153
|
+
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
154
|
+
|
155
|
+
`article_id` bigint(20) NOT NULL DEFAULT '0',
|
156
|
+
|
157
|
+
`user_id` bigint(20) NOT NULL DEFAULT '0',
|
158
|
+
|
159
|
+
PRIMARY KEY (`id`),
|
160
|
+
|
161
|
+
UNIQUE KEY `ix01_likes` (`user_id`,`article_id`),
|
162
|
+
|
163
|
+
KEY `ix02_likes` (`user_id`),
|
164
|
+
|
165
|
+
KEY `ix03_likes` (`article_id`)
|
166
|
+
|
167
|
+
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ;
|
168
|
+
|
169
|
+
```
|
170
|
+
|
171
|
+
|
172
|
+
|
23
|
-
|
173
|
+
又この場合、created_atとupdated_atの違いはなんでしょうか。
|