teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

修正

2020/06/29 08:24

投稿

yakan
yakan

スコア19

title CHANGED
File without changes
body CHANGED
@@ -20,4 +20,8 @@
20
20
  FOREIGN KEY (mytable3_ID) REFERENCES mytable3(ID)
21
21
  ```
22
22
  いまいちNULLのメリットやデメリットが理解できておりません…
23
- あると何が便利なのでしょうか?
23
+ あると何が便利なのでしょうか?
24
+ ###修正
25
+ 誤解があったため内容を次のように修正させていただきます。
26
+ 「NULL」か「空文字列」か、どちらにすべきか?でした。
27
+ ご指摘頂いたmaisumakun様、ありがとうございます。

2

外部キー追加

2020/06/29 08:24

投稿

yakan
yakan

スコア19

title CHANGED
File without changes
body CHANGED
@@ -3,17 +3,21 @@
3
3
  mytable2_ID、my_table3_ID のいずれかが入るカラムがあるとします。
4
4
 
5
5
  ```
6
- CREATE TABLE IF NOT EXISTS mytable (
6
+ CREATE TABLE IF NOT EXISTS mytable1 (
7
7
  ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
8
8
  mytable2_ID INT(10), # いずれかが入る
9
- mytable3_ID INT(10) # いずれかが入る
9
+ mytable3_ID INT(10), # いずれかが入る
10
+ FOREIGN KEY (mytable2_ID) REFERENCES mytable2(ID),
11
+ FOREIGN KEY (mytable3_ID) REFERENCES mytable3(ID)
10
12
  ```
11
13
  こういった場合、下記のように`DEFAULT NULL`を設定すべきでしょうか?
12
14
  ```
13
- CREATE TABLE IF NOT EXISTS mytable (
15
+ CREATE TABLE IF NOT EXISTS mytable1 (
14
16
  ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
15
17
  mytable2_ID INT(10) DEFAULT NULL,
16
- mytable3_ID INT(10) DEFAULT NULL
18
+ mytable3_ID INT(10) DEFAULT NULL,
19
+ FOREIGN KEY (mytable2_ID) REFERENCES mytable2(ID),
20
+ FOREIGN KEY (mytable3_ID) REFERENCES mytable3(ID)
17
21
  ```
18
22
  いまいちNULLのメリットやデメリットが理解できておりません…
19
23
  あると何が便利なのでしょうか?

1

カラム訂正

2020/06/29 08:09

投稿

yakan
yakan

スコア19

title CHANGED
File without changes
body CHANGED
@@ -1,17 +1,19 @@
1
+ テーブルに以下
1
- テーブルに以下nameA、nameBのいずれかが入るカラムがあるとします。
2
+ ~~nameA、nameB のいずれかが入るカラムがあるとします。~~
3
+ mytable2_ID、my_table3_ID のいずれかが入るカラムがあるとします。
2
4
 
3
5
  ```
4
6
  CREATE TABLE IF NOT EXISTS mytable (
5
7
  ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
6
- nameA VARCHAR(10), # いずれかが入る
8
+ mytable2_ID INT(10), # いずれかが入る
7
- nameB VARCHAR(10) # いずれかが入る
9
+ mytable3_ID INT(10) # いずれかが入る
8
10
  ```
9
11
  こういった場合、下記のように`DEFAULT NULL`を設定すべきでしょうか?
10
12
  ```
11
13
  CREATE TABLE IF NOT EXISTS mytable (
12
14
  ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
13
- nameA VARCHAR(10) DEFAULT NULL,
15
+ mytable2_ID INT(10) DEFAULT NULL,
14
- nameB VARCHAR(10) DEFAULT NULL
16
+ mytable3_ID INT(10) DEFAULT NULL
15
17
  ```
16
18
  いまいちNULLのメリットやデメリットが理解できておりません…
17
19
  あると何が便利なのでしょうか?