質問編集履歴

3

誤字を訂正しました

2024/04/24 08:58

投稿

munekun
munekun

スコア40

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の文章を訂正し、いくつかの誤字を訂正しました。

2024/04/24 08:57

投稿

munekun
munekun

スコア40

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の文章を訂正しました

2024/04/24 08:54

投稿

munekun
munekun

スコア40

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,