質問編集履歴
3
誤字を訂正しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -66,7 +66,7 @@
|
|
66
66
|
「なんかロックって遅そうだよなぁ」という印象があります。
|
67
67
|
|
68
68
|
### まとめ
|
69
|
-
以上の2案についてどちらが適切か、または他に
|
69
|
+
以上の2案についてどちらが適切か、または他にオススメの案がございましたら教えて頂けませんでしょうか?
|
70
70
|
|
71
71
|
適切さは全体の仕様次第でしょうけれど、WEBサイト制作経験がなくまるで判断できない状況です。
|
72
72
|
|
2
案2の文章を訂正し、いくつかの誤字を訂正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -46,7 +46,7 @@
|
|
46
46
|
「なんかテーブルって少ない方が良さそうだよなぁ」という印象があります。
|
47
47
|
|
48
48
|
#### 案2
|
49
|
-
`users`テーブルに`default_folder_id`カラムを設け、以下のようにする案です。
|
49
|
+
`folders.is_default` というカラムは削除し、`users`テーブルに`default_folder_id`カラムを設け、以下のようにする案です。
|
50
50
|
```SQL
|
51
51
|
CREATE TABLE users (
|
52
52
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
@@ -59,14 +59,14 @@
|
|
59
59
|
|
60
60
|
しかし上のコメントにあるように、`users__foreign__default_folder_id`という外部キー制約を課すと、以下ABというジレンマが生じてしまいます。
|
61
61
|
|
62
|
-
A: `users`への`INSERT`の前に、`folders`への`INSERT`が必要(`users__foreign__default_folder_id`のため)
|
62
|
+
A: `users`への`INSERT`の前に、`folders`への`INSERT`が必要 (`users__foreign__default_folder_id`のため)
|
63
|
-
B: `folders`への`INSERT`の前に、`users`への`INSERT`が必要(`folders__foreign__user_id`のため)
|
63
|
+
B: `folders`への`INSERT`の前に、`users`への`INSERT`が必要 (`folders__foreign__user_id`のため)
|
64
64
|
|
65
65
|
このジレンマの解消は、`INSERT`のときはデータベースになんからのロックをかけて、次のPKを取得するという方法で回避できますが、そういう方法が適切なのか?判断できません。
|
66
66
|
「なんかロックって遅そうだよなぁ」という印象があります。
|
67
67
|
|
68
68
|
### まとめ
|
69
|
-
以上の2案について、または他に
|
69
|
+
以上の2案についてどちらが適切か、または他に適切そうながあれば教えて頂けませんでしょうか?
|
70
70
|
|
71
71
|
適切さは全体の仕様次第でしょうけれど、WEBサイト制作経験がなくまるで判断できない状況です。
|
72
72
|
|
1
案1の文章を訂正しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
いくつか案を考えてみましたが、このどれが適切なのか?それとも他に適切な方法があるのか?がわかりません。
|
31
31
|
|
32
32
|
#### 案1
|
33
|
-
`default_folders`というリレーションテーブルを作り、以下のようにする案です。
|
33
|
+
`folders.is_default` というカラムは削除し、`default_folders`というリレーションテーブルを作り、以下のようにする案です。
|
34
34
|
```SQL
|
35
35
|
CREATE TABLE default_folders (
|
36
36
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|