質問編集履歴
2
typo
title
CHANGED
File without changes
|
body
CHANGED
@@ -40,7 +40,7 @@
|
|
40
40
|
ON (f.follower_user_id = u.user_id AND current_time < f.deleted_at)
|
41
41
|
WHERE f.followee_user_id = ?
|
42
42
|
```
|
43
|
-
B. フォロー関係の生存期間を
|
43
|
+
B. フォロー関係の生存期間をWHEREで判定
|
44
44
|
```sql
|
45
45
|
SELECT u.user_id, u.nickname, u.face_image
|
46
46
|
FROM following f
|
1
具体例の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,4 +13,40 @@
|
|
13
13
|
- 日時条件はキーの関係の存在に関わることであり、ON句の責任範囲だ
|
14
14
|
- 結合ルールの存在が一行でわかることは読み手にスキーマ理解のヒントを与える良い書き方
|
15
15
|
|
16
|
-
自分で思いつくメリットデメリットは以上のような感じですが、ほかに考慮点があったら教えてください。
|
16
|
+
自分で思いつくメリットデメリットは以上のような感じですが、ほかに考慮点があったら教えてください。
|
17
|
+
|
18
|
+
具体例の追記
|
19
|
+
---
|
20
|
+
usersテーブル
|
21
|
+
|user_id|nickname|face_image|
|
22
|
+
|--|--|--|
|
23
|
+
|1|Alice|(BLOB)|
|
24
|
+
|2|Bob|(BLOB)|
|
25
|
+
|3|Charley|(BLOB)|
|
26
|
+
|
27
|
+
followingテーブル
|
28
|
+
|follower_user_id|followee_user_id|created_at|deleted_at|
|
29
|
+
|--|--|--|--|
|
30
|
+
|1|2|2015-01-01|9999-12-31|
|
31
|
+
|2|3|2015-01-01|2016-12-31|
|
32
|
+
|
33
|
+
このとき、あるユーザーのフォロワー一覧を表示しようとしたら
|
34
|
+
|
35
|
+
A. フォロー関係の生存期間をONで判定
|
36
|
+
```sql
|
37
|
+
SELECT u.user_id, u.nickname, u.face_image
|
38
|
+
FROM following f
|
39
|
+
JOIN users u
|
40
|
+
ON (f.follower_user_id = u.user_id AND current_time < f.deleted_at)
|
41
|
+
WHERE f.followee_user_id = ?
|
42
|
+
```
|
43
|
+
B. フォロー関係の生存期間をONで判定
|
44
|
+
```sql
|
45
|
+
SELECT u.user_id, u.nickname, u.face_image
|
46
|
+
FROM following f
|
47
|
+
JOIN users u
|
48
|
+
ON (f.follower_user_id = u.user_id)
|
49
|
+
WHERE f.followee_user_id = ? AND current_time < f.deleted_at
|
50
|
+
```
|
51
|
+
|
52
|
+
どちらの記法を選びますか、その根拠はどういったものが考えられますか、という質問になります。
|