みなさんは、100%間違えずデータを入力することができますか?
人間、誰しも失敗はします。
でもできれば失敗はなくしたり、少なくしたいですよね。
入力してデータを登録すると、間違える可能性が高くなります。
それを防止するために、テーブルを分割することがあります。
今回は、テーブルの分割方法をご紹介したいと思います。
contents
テーブルの分割
前回登録した以下テーブルで考えてみたいと思います。
ユーザーID | 名前 | ふりがな | アドレス | 性別 | 年齢 | 誕生日 | 婚姻 | 都道府県 | 携帯 | |
1 | 高樹 鉄洋 | たかぎ てつひろ | takagi_tetsuhiro@example.com | 男 | 43 | 1978/8/29 | 既婚 | 群馬県 | 090-1829-3927 | |
2 | 三谷 光洋 | みたに みつひろ | mitani_mitsuhiro@example.com | 男 | 30 | 1992/1/13 | 未婚 | 群馬県 | 080- 135-7603 | |
3 | 永野 光博 | ながの みつひろ | nagano_mitsuhiro@example.com | 男 | 39 | 1982/10/27 | 既婚 | 埼玉県 | 080-4148-1980 | |
4 | 伊藤 誠一 | いとう せいいち | itou_seiichi@example.com | 男 | 61 | 1960/4/28 | 既婚 | 沖縄県 | 080- 489-8947 | |
5 | 池上 美和子 | いけがみ みわこ | ikegami_miwako@example.com | 女 | 68 | 1953/8/3 | 既婚 | 滋賀県 | 080-1580-4319 |
このテーブルで繰返し入力しているのは、性別、婚姻、都道府県ですね。
では、試しに都道府県を別テーブルにしてみましょう。
都道府県はいくつありますか?
47都道府県
都道府県すべてに番号を振ります。
都道府県ID | 都道府県名 |
---|---|
1 | 北海道 |
2 | 青森県 |
3 | 岩手県 |
4 | 宮城県 |
5 | 秋田県 |
6 | 山形県 |
7 | 福島県 |
8 | 茨城県 |
9 | 栃木県 |
10 | 群馬県 |
11 | 埼玉県 |
12 | 千葉県 |
13 | 東京都 |
14 | 神奈川県 |
15 | 新潟県 |
16 | 富山県 |
17 | 石川県 |
18 | 福井県 |
19 | 山梨県 |
20 | 長野県 |
21 | 岐阜県 |
22 | 静岡県 |
23 | 愛知県 |
24 | 三重県 |
25 | 滋賀県 |
26 | 京都府 |
27 | 大阪府 |
28 | 兵庫県 |
29 | 奈良県 |
30 | 和歌山県 |
31 | 鳥取県 |
32 | 島根県 |
33 | 岡山県 |
34 | 広島県 |
35 | 山口県 |
36 | 徳島県 |
37 | 香川県 |
38 | 愛媛県 |
39 | 高知県 |
40 | 福岡県 |
41 | 佐賀県 |
42 | 長崎県 |
43 | 熊本県 |
44 | 大分県 |
45 | 宮崎県 |
46 | 鹿児島県 |
47 | 沖縄県 |
元のテーブルにはこの番号を入れ、
都道府県名は、分割した別のテーブルに入れます。
そうすると、番号は繰返し入力しますが、都道府県名は一度入力すれば、もう入力することがなくなり、間違いが減ります。
ユーザーID | 名前 | ふりがな | アドレス | 性別 | 年齢 | 誕生日 | 婚姻 | 都道府県ID | 携帯 |
1 | 高樹 鉄洋 | たかぎ てつひろ | takagi_tetsuhiro@example.com | 男 | 43 | ######## | 既婚 | 10 | 090-1829-3927 |
2 | 三谷 光洋 | みたに みつひろ | mitani_mitsuhiro@example.com | 男 | 30 | ######## | 未婚 | 10 | 080- 135-7603 |
3 | 永野 光博 | ながの みつひろ | nagano_mitsuhiro@example.com | 男 | 39 | ######## | 既婚 | 11 | 080-4148-1980 |
4 | 伊藤 誠一 | いとう せいいち | itou_seiichi@example.com | 男 | 61 | ######## | 既婚 | 25 | 080- 489-8947 |
5 | 池上 美和子 | いけがみ みわこ | ikegami_miwako@example.com | 女 | 68 | 1953/8/3 | 既婚 | 47 | 080-1580-4319 |
テーブルの定義で確認してみましょう。
分割前は以下のように1つのテーブルにすべてのデータが入っていました。
分割後は以下のようになります。
両方のテーブルに都道府県IDを入れることで、紐づけを作ることができ、
どのIDがどの都道府県名であるかがわかります。