Togetter/min.tを安心してお使い頂くためのガイドラインを公開しました。

未来の自分に対し「こんなDB設計にして申し訳ない」とツイート→その通りになってしまった人の話

「無理な設計にすると後で祟る」のはよくある話ですが、「当時はそれしか方法がなかった」というのもよくある話です。合掌。
70

過去編

ワープくん @warpbtn

未来のぼくへ これを読んでいるということは、「何考えてこんな設計にしたんや。アホか」と思ってるということだよね。ごめんね。要件に対してMySQLにJSONカラムを実装する以外にいいアイディアが思いつかなかったんだ。拡張する時に不具合が起こってるんだよね。本当に申し訳なく思う

2019-08-30 13:08:48
ワープくん @warpbtn

先に謝ったから、やってもええやろ。

2019-08-30 13:09:47
たな @tanapapa1209

@warpbtn 自身が苦しむだけと思うが……

2019-08-30 15:07:54
ワープくん @warpbtn

@tanapapa1209 未来のぼくは天才だから大丈夫なはず!

2019-08-30 17:11:54
補足説明:

MySQLには、バージョン5.7から「JSONデータ型(JSON Data Type)」と呼ばれる概念が登場しています。これにより、JSON型を直接入れられるカラムを作成できます。

便利な一方、一般的なRDBの正規化を崩すことになりますので、仕様には注意が必要です。詳しくはこちらをご覧ください。

リンク WPJ もう知ってた? MySQL 5.7でNoSQLっぽくJSONデータを扱う方法 MySQL 5.7では、JSONデータを「JSON型」としてネイティブで扱えます。サンプルを見ながら、基本的な使い方を確認しましょう。 ※本記事は2016年5月31日に掲載した記事を一部再編集して更新したものです。執筆時点の技術情報をベースにしています。 「SQL vs NoSQL: The Differences」で紹介したように、SQLとNoSQLの境界線は、両言語が他方の特徴を取り入れる傾向… 36 users 42

そして現在……

ワープくん @warpbtn

ボケエエエェェェェェエエエ!!!!! ワレ何さらしとんじゃい!!!! 無茶苦茶地獄みとるやないか、アホんだらぁ!!!ぶっ数すぞ!!! twitter.com/warpbtn/status…

2020-03-26 20:18:53
周囲の反応など
ワープくん @warpbtn

@neco_engineer 全部やり直した。2度とやらない。

2020-03-26 20:21:51
ワープくん @warpbtn

@fishing_kiyogon 例外処理地獄にならなければ…

2020-03-26 20:24:07
(コロコロ スベった裸の王様) mach48 @mach48mach

@warpbtn ᓚᘏᗢ 時をかけるおっさん的ひとり時間差ボケ- ツッコミ芸が、完成した瞬間だったワニ。

2020-03-27 00:22:31
ワープくん @warpbtn

@mach48mach まさか、ここまで苦しめられるとは…

2020-03-27 07:34:08
阿貴 @AsobuTaiwan

やっちゃった...便利そうだったもんでついtwitter.com/warpbtn/status…

2020-03-27 12:44:40
りょうのすけ @rnosuke

当事者には申し訳ないけど今日一番笑ったw twitter.com/warpbtn/status…

2020-03-27 13:38:42
R(あいれい/おいす) @R_farms

マップ実装でやってしまった マスタを・・・ twitter.com/warpbtn/status…

2020-03-27 18:53:08
sosmii @sosmii_

わらってしまった このようなインガオホー設計、分かっていてもやってしまいがち、そして後で絶対に後悔する twitter.com/warpbtn/status…

2020-03-27 12:46:18

コメント

やすだ @forth83 2020年3月27日
技術的負債というか、工数の前借りというか...
28
ゆーき @yuki073 2020年3月27日
まあDBは正規化が最強だよね… 速度とかで正規化崩す場合もせめてマテリアライズド・ビューで済ませたい。
2
閲覧 @etranyou 2020年3月27日
ぶっちゃけぜんぜんいみがわかんないが、「我なにしとんじゃ!」は今後積極的に使っていきたい
20
sake @sake_ne_ku 2020年3月27日
「やろう、ぶっころしてやる」「きゃあ、じぶんごろし」「はやく実装やってねようね」
32
無声化したv。人間には発音不能。 @fp0 2020年3月27日
「ぶっ数すぞ」がスムーズに読めるのすごくないですか。共通する部品が1つもないんですよ?
60
gaheki @gaheki 2020年3月28日
自分のやらかしなら自己嫌悪で済むがこれが上からの命令だったらもうね
1
海◆eoxyl9RE @umi_eoxyl9RE 2020年3月28日
やりたくても工数がかかり過ぎてできない機能開発とかあるんだろうなと想像はつく。 ただ開発陣様ごめんなさい、これからも毎月要望は出します。現場でサンドバッグになるのもつらいんです。何百万の仕事逃すのイヤなんです。先に謝ります。
0
kusano @t_kusano 2020年3月28日
gaheki 上だけじゃなくて横(同僚のレビュー)とか客(相手もエンジニア)のパターンもありますね。「なんで削除フラグがないんですか」「正規化しすぎじゃないですか」「別テーブルに分けないでカラム増やせばいいじゃないですか」ハイハイめんどくさいから言う通りに改悪しますよ
1
愚者@勇者部満開15No.13 @fool_0 2020年3月28日
DBをドラゴンボールと誤読したのは当局だけではないはず。
1
とろろ @ein18790314 2020年3月28日
急がば回れ(だが迂回路は通行止め という絶望下で仕事頑張ってる人のなんと多いことよ…
1
yuki🌾㊗️6さい🎉⚔ @yuki_obana 2020年3月28日
まぁ諦めて地道にやるしかないんだよね(´・ω・`)
0
いぬだわん @InuWang 2020年3月28日
そういえばXML DBっていまどうなってるのかな?
1
BLACK @BlackBlack0013 2020年3月28日
あるあるだなあ。似たような事例で、若い時に自分で作った紙の仕様書が(字が小さくて)読めない! なんてことも。
1
ですの @_desuno_ 2020年3月28日
技術的な負債は未来の自分じゃなくて未来の担当者(他人)にぶん投げる悪魔的手法もある。もちろん自分が手渡されて前任者何やっとんじゃーとなるのも基本、みんな未来の誰かに希望を託しているのさ
4
うの @uniquis 2020年3月28日
わかっていただろうにのう ワグナス
4
犬だよ @yaju5123 2020年3月28日
ITあるあるやめろ  いやマジで
1
モモっち @momo_ch 2020年3月28日
MYSQL8からJSON関連強化されてjsonをテーブルのように扱えるJSON_TABLEとか増えたのでアップデートすればなんとかなるかも… 複雑さが増すだけかも…
1
ふみー @magical_fummy 2020年3月29日
7か月そこらの間に起きたことなのね。中身はよくわからないけど、技巧におぼれた結果なのはなんとなく察しが付く
0
からす @pashikuru 2020年3月29日
そういや25年前、日本に来たばっかりのOracleに「お、バイナリデータ入るやんけ」と図面データを放り込んだら案の定パンクした。図面は文書管理でやりましょう。
0