---
title: 【JJUG CCC 2024 Spring】物理削除/論理削除 #jjug_ccc_c #jjug_ccc
tags: 
author: [hirotaka kono](https://www.docswell.com/user/hk_it7)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/L7LPGRRRJR.jpg?width=480
description: 【JJUG CCC 2024 Spring】物理削除/論理削除 #jjug_ccc_c #jjug_ccc by hirotaka kono
published: June 16, 24
canonical: https://www.docswell.com/s/hk_it7/ZENPR1-2024-06-16-111139
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/L7LPGRRRJR.jpg)

TORANOANA Lab
物理削除 vs 論理削除
レコード消滅作戦
虎の穴ラボ 河野 裕隆
JJUG CCC 2024 Spring
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4EM4QRRPJW.jpg)

自己紹介
河野 裕隆（こうの ひろたか）
好きなもの
●
2019/08 虎の穴ラボ入社
●
VOCALOID（初音ミク）
●
新規開発チーム
●
謎解き、クイズ
○
●
クリエイティア他
X: @hk_it7
虎の穴ラボへの入社理由
●
スキルを高めあえる仲間がほしい
●
ユーザーに近い仕事がしたい
JJUG CCC登壇は半年ぶり3回目 初めてスタッフ参加🎉
2
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 3

![Page Image](https://bcdn.docswell.com/page/PERW8RRYJ9.jpg)

アイスブレイクタイム
3
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 4

![Page Image](https://bcdn.docswell.com/page/P7XP8RR4JX.jpg)

おはようございます！！
4
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 5

![Page Image](https://bcdn.docswell.com/page/37KDKRRPED.jpg)

質問です！
5
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 6

![Page Image](https://bcdn.docswell.com/page/LJ3RZ884E5.jpg)

『ゴジラ×メガギラス G消滅作戦』
見たことある人󰢧
6
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 7

![Page Image](https://bcdn.docswell.com/page/8JDYRMM5JG.jpg)

交流会で話ましょう！！！！
7
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 8

![Page Image](https://bcdn.docswell.com/page/VEP6WRRD78.jpg)

今回このタイトルにして、
ちょっと恥ずかしくなっています......
8
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 9

![Page Image](https://bcdn.docswell.com/page/27V38RRGJQ.jpg)

話さないこと
● Javaのこと！
○ JJUG CCCなのに......
● 組み込みでのこと！
● この世の真理のこと！
○ どんなケースでも対応できるベストプラク
ティスを授けるわけではないです！
9
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 10

![Page Image](https://bcdn.docswell.com/page/5JG35M6DEL.jpg)

話すこと
● 物理削除とは
● 論理削除とは
● 各陣営の主張
● 大まかな選定基準
10
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 11

![Page Image](https://bcdn.docswell.com/page/47Q5ZR4XEP.jpg)

対象者
● Beginnerセッション
○ 初学者～を対象としています
● なんとなくでDB設計している人
○ DB設計する際の私見を共有します
11
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 12

![Page Image](https://bcdn.docswell.com/page/KE4938Q2J1.jpg)

オススメの聞き方（余談）
● 自分の考えと異なるところを見つける
○ その理由を考える
● 理解できなかったところをまとめる
○ 質問する
■ 交流会でも廊下で捕まえてもらっても󰢏
12
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 13

![Page Image](https://bcdn.docswell.com/page/L71K12PKEG.jpg)

レコードは物理削除すべき？󰢧
13
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 14

![Page Image](https://bcdn.docswell.com/page/G7WD8R2PE2.jpg)

論理削除のほうが良い？󰢧
14
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 15

![Page Image](https://bcdn.docswell.com/page/4JZG8RD673.jpg)

前提条件なく話せない！！
15
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 16

![Page Image](https://bcdn.docswell.com/page/YE6YPR1LJV.jpg)

SNSの文量では
前提条件を説明しきれない！！
16
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 17

![Page Image](https://bcdn.docswell.com/page/GE5GK84ME4.jpg)

メリット・デメリットを精査して
選択できるようにしよう！！
17
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 18

![Page Image](https://bcdn.docswell.com/page/972YWKVR7R.jpg)

話すこと
● 物理削除とは
● 論理削除とは
● 各陣営の主張
● 大まかな選定基準
18
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 19

![Page Image](https://bcdn.docswell.com/page/DJYGLN35JM.jpg)

話すこと
● 物理削除とは
● 論理削除とは
● 各陣営の主張
● 大まかな選定基準
19
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 20

![Page Image](https://bcdn.docswell.com/page/V7NG4XV4E8.jpg)

の前に......
なぜ削除するのか？
20
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 21

![Page Image](https://bcdn.docswell.com/page/YJ9WQ864J3.jpg)

削除する理由
● 不要だから（ex: バナナの皮）
● 見せちゃいけないから（ex: 自分宛ての封筒）
○ シュレッダーで削除
● 増えすぎるから（ex: 昨日の新聞）
etc.
21
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 22

![Page Image](https://bcdn.docswell.com/page/GJ8NG8ZVED.jpg)

システムの世界でも
さまざまな理由で”削除”する
22
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 23

![Page Image](https://bcdn.docswell.com/page/LJLPGRDRER.jpg)

削除方法には大きくわけて2つある
23
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 24

![Page Image](https://bcdn.docswell.com/page/47M4QRPPEW.jpg)

①
ゴミとして出す=手元から消える
物理削除
24
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 25

![Page Image](https://bcdn.docswell.com/page/P7RW8R1YE9.jpg)

②
目に見えないところに移動=手元に残る
論理削除
25
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 26

![Page Image](https://bcdn.docswell.com/page/PJXP8RY4EX.jpg)

話すこと
● 物理削除とは
● 論理削除とは
● 各陣営の主張
● 大まかな選定基準
26
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 27

![Page Image](https://bcdn.docswell.com/page/3JKDKR3P7D.jpg)

物理削除とは
DBに入ったデータを削除すること
&lt;=&gt;論理削除
基本的に復旧/再度閲覧の手段がない
27
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 28

![Page Image](https://bcdn.docswell.com/page/LE3RZ8G475.jpg)

話すこと
● 物理削除とは
● 論理削除とは
● 各陣営の主張
● 大まかな選定基準
28
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 29

![Page Image](https://bcdn.docswell.com/page/8EDYRM15EG.jpg)

論理削除とは
DBに入ったデータのステータス等を更新し削除さ
れたものと扱うこと
復旧/再度閲覧が可能
29
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 30

![Page Image](https://bcdn.docswell.com/page/V7P6WRQDJ8.jpg)

論理削除の種類
● 削除フラグ（さっきの例）
● 削除日時
● ステータス
● 削除/有効状態テーブル
● その他
30
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 31

![Page Image](https://bcdn.docswell.com/page/2JV38R5GEQ.jpg)

削除日時を使った論理削除-NULLを利用
削除されたら、その日時を入れる
メリット：削除された日時がわかる
デメリット：NULL許可で、ぬるぽの可能性
31
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 32

![Page Image](https://bcdn.docswell.com/page/5EG35MPD7L.jpg)

削除日時を使った論理削除-NULLを避ける
デメリット：NULL許可で、ぬるぽの可能性
=&gt;DEFAULT値を「9999-12-31」で解決可能？
検索は未来日にしておけば良い
32
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 33

![Page Image](https://bcdn.docswell.com/page/4JQ5ZR2X7P.jpg)

ステータス
削除されたら、ステータスを「削除状態」にする
メリット：カラムが増えない
デメリット：同列で扱うべきか悩む
33
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 34

![Page Image](https://bcdn.docswell.com/page/K74938L2E1.jpg)

削除/有効状態テーブルを結合
削除/有効状態テーブルの有無で状態を判断
メリット：検索効率がよくなる可能性がある
デメリット：検索がしんどい
※削除状態テーブルを作成する例
34
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 35

![Page Image](https://bcdn.docswell.com/page/LJ1K12LK7G.jpg)

削除/有効状態テーブルを結合
有効状態テーブルの有用性
- 削除時に消さないといけない情報をまとめる
=&gt;実質物理削除と同じメリットを得られる
- 外部キー制約を維持できる
35
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 36

![Page Image](https://bcdn.docswell.com/page/GJWD8RVP72.jpg)

その他
● アーカイブに逃がしたうえで物理削除
○ トランザクション管理が必要
○ 結局レコード残る
● マスキングしてしまう
○ 削除フラグ等で論理削除した上で利用
○ 個人情報を意味のない値で上書き
36
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 37

![Page Image](https://bcdn.docswell.com/page/4EZG8R46J3.jpg)

話すこと
● 物理削除とは
● 論理削除とは
● 各陣営の主張
● 大まかな選定基準
37
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 38

![Page Image](https://bcdn.docswell.com/page/Y76YPR3LEV.jpg)

各陣営の主張 - 物理削除派
物理削除のメリット
● 情報流出の危険がない！
● 検索時に条件の追加が不要
● 検索時にレコード数が減る
38
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 39

![Page Image](https://bcdn.docswell.com/page/G75GK8LM74.jpg)

各陣営の主張 - 論理削除派
論理削除のメリット
● 簡単に巻き戻せる
● 外部キー制約に引っかかることもない
39
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 40

![Page Image](https://bcdn.docswell.com/page/9J2YWKLRJR.jpg)

話すこと
● 物理削除とは
● 論理削除とは
● 各陣営の主張
● 大まかな選定基準
40
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 41

![Page Image](https://bcdn.docswell.com/page/DEYGLNQ5EM.jpg)

おおまかな選定基準
41
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 42

![Page Image](https://bcdn.docswell.com/page/VJNG4XK478.jpg)

おおまかな選定基準
● まずは物理削除できないか検討する
○ 取り返しのつかない要素なので慎重に......
● リレーション関係に注意⚠
● 残したいデータと消す必要のあるデータでわけ
ておくと良い
=&gt;有効/無効テーブルで仕分けられるかも
42
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 43

![Page Image](https://bcdn.docswell.com/page/YE9WQ8V4E3.jpg)

伝えたいこと
● 削除方法（物理/論理削除）はどのようにの話
● 設計時に大切なのは、「なぜ」/「どうして」
削除するのか
43
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 44

![Page Image](https://bcdn.docswell.com/page/GE8NG8PV7D.jpg)

要件定義/設計では
「なぜ、どうして」と「どのように」を
切り分けることが重要！！
44
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 45

![Page Image](https://bcdn.docswell.com/page/LELPGR1R7R.jpg)

考え方
● 要件：なぜ、どうして
● 設計：どのように
設計理由が要件の「なぜ」、「どうして」を満た
しているか考える
45
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 46

![Page Image](https://bcdn.docswell.com/page/4JM4QRWP7W.jpg)

サンプル
● 仕様：ユーザー退会時に個人情報を削除する
○ なぜ？
■ プライバシーポリシーで定めているから
● 設計：ユーザー退会はユーザーテーブルのレ
コード物理削除にて行う
↑プライバシーポリシーに従うための設計
46
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 47

![Page Image](https://bcdn.docswell.com/page/PJRW8RYY79.jpg)

まとめ
● 「なぜ」/「どうして」に着目、DB設計しよう
47
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


# Page. 48

![Page Image](https://bcdn.docswell.com/page/PEXP8RG47X.jpg)

宣伝
● 今回の内容含めて技術同人誌出してます！
技術書典
サークル名：世迷言ラボ
電子のみ、500円
https://techbookfest.org/product/fYKMyCU1sJFBMrcBG
TCeXb?productVariantID=iu3uRVDhX5ct79p9KYdu2w
48
Copyright (C) 2024 Toranoana Lab Inc. All Rights Reserved.
#jjug_ccc_c


