結局開発で最も大切なのはテーブルの正規化と制約 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/08/24(木) 07:52:17.47ID:PyrFLEpH
テーブルを正規化したり
適切なデータ型を決定したり
制約を定義するといったことが
開発の中で最も大切

炎上してるプロジェクトは
必ずと言って良いほど
これらを軽視している
2017/08/24(木) 09:04:18.74ID:EpnGEQYH
整理整頓、ちゃんとしようってことなんだな。
炎上なんてのは当たり前のことが当たり前にできてないってことがほとんどで。
2017/08/24(木) 11:59:02.99ID:XuqrQefm
DB側で管理できることは
DB側でやれってことでいいの?
4デフォルトの名無しさん
垢版 |
2017/08/24(木) 12:41:55.80ID:zJQXGEF9
そんな話じゃないよ

テーブルを正規化したり
適切なデータ型を決定したり
制約を定義する
というのをやっておけば
そうそう炎上なんかしない
という話
2017/08/24(木) 14:30:20.09ID:CR+/HOHS
そんな馬鹿な
6デフォルトの名無しさん
垢版 |
2017/08/24(木) 17:48:40.28ID:C4W+CfmQ
そんな馬鹿なと思うかもしれないけど
意外と事実だよ
2017/08/24(木) 18:29:53.40ID:CR+/HOHS
> テーブルを正規化したり
> 適切なデータ型を決定したり
> 制約を定義する
なんて基本中の基本で、それでも炎上するプロジェクト多数なんだが
2017/08/24(木) 19:06:37.16ID:FkBgbj51
それは、顧客仕様を分析できてないからだお
9デフォルトの名無しさん
垢版 |
2017/08/24(木) 19:07:46.08ID:C4W+CfmQ
>>7
そんなことはない
炎上するプロジェクトの大半は

テーブルを正規化したり
適切なデータ型を決定したり
制約を定義する

というのをやってない
2017/08/24(木) 20:45:00.02ID:JbiFzDA2
大半: 全体の半分以上

(全体 - 大半)は
テーブルを正規化したり
適切なデータ型を決定したり
制約を定義する
事をしてても炎上してるって事だね

定量的なデータあるの? 大半って何% 母集団は何?
11デフォルトの名無しさん
垢版 |
2017/08/24(木) 20:53:03.51ID:C4W+CfmQ
誰に何を聞いてるんだ?
2017/08/24(木) 21:05:02.33ID:gfjynZsV
>>8
だよね

原因と結果を混同してたら根本原因にはたどり着けない
2017/08/24(木) 21:11:48.10ID:gfjynZsV
デスマ案件の原因Top3
・低品質な要求分析・要件定義
・最初から無理めなスケジュール・予算
・わがまま傲慢顧客

次点
・顧客担当者の社内調整力不足
・PMの調整力・交渉力不足

次々点 (※マネジメントが優秀ならこれらの理由だけで炎上する可能性は小さい)
・既存システム・連携システムの負の遺産
・エンジニアの技術力不足
・採用技術の不確実性
14デフォルトの名無しさん
垢版 |
2017/08/24(木) 21:16:50.03ID:C4W+CfmQ
テーブルを正規化したり
適切なデータ型を決定したり
制約を定義する
というのを

A.やっていて炎上するプロジェクト
B.やっていなくて炎上するプロジェクト
C.やっていて炎上しないプロジェクト
D.やっていなくて炎上しないプロジェクト

の4つに分けたら

A<Bであるし
C>Dである
15デフォルトの名無しさん
垢版 |
2017/08/24(木) 21:21:32.21ID:C4W+CfmQ
>>13
それは幻想
現実には

テーブルを正規化したり
適切なデータ型を決定したり
制約を定義する

というのを
やってるかやってないかで
簡単に決まってしまう
16デフォルトの名無しさん
垢版 |
2017/08/25(金) 03:29:00.56ID:um5Q9HrD
テーブルを正規化する
適切なデータ型を決定する
制約を定義する

以後この3つを「正規化など」って俺は書くね
17デフォルトの名無しさん
垢版 |
2017/08/25(金) 03:31:40.26ID:um5Q9HrD
正規化などと炎上プロジェクトの間には
ビックリするほど関係性がある

嘘だと思うなら調べてみるといい
2017/08/25(金) 11:14:11.33ID:Yqz1DVXO
肌感覚だけどそりゃそうだろうね。
正規化をまじめに考える余裕もないような現場なら炎上しやすいってか炎上中というか。
2017/08/25(金) 13:32:04.14ID:wQ+5Hsyr
結局開発で最も大切なのは仕様
上手くいかないのは仕様が滅茶苦茶な時
仕様が糞だと設計もコードも乱雑になり糞になる

客先常駐やSIerはその場しのぎの糞コードばかり書くことになる
基本自社開発な企業行くと、意味不明な仕様もなくなって楽になった
20デフォルトの名無しさん
垢版 |
2017/08/25(金) 17:46:33.07ID:GmykFKX/
>>18
正規化などを「余裕のある時にやればいいこと」と位置づけた時から炎上は始まってる
21デフォルトの名無しさん
垢版 |
2017/08/25(金) 17:47:56.47ID:GmykFKX/
>>19
「仕様が糞」って具体的にどんな状態?
2017/08/25(金) 18:14:26.28ID:sBQQtGzP
正規化・適切なデータ型選択・制約の定義をすれば炎上しないと思ってるなら
自分でそれをやればいいと思うんだけど何でやらないの?
23デフォルトの名無しさん
垢版 |
2017/08/25(金) 18:21:40.86ID:GmykFKX/
>>22
君がやってみれば?
実際に正規化などが行われていない
炎上プロジェクトでさ

上の方でも書いたけど「正規化など」というのは
1.テーブルを正規化する
2.適切なデータ型を決定する
3.制約を定義する
の3つね
2017/08/25(金) 18:36:46.50ID:sBQQtGzP
>>23
>実際に正規化などが行われていない

行われてないって何で他人事なの?
行われてないなら行えばいいじゃん
25デフォルトの名無しさん
垢版 |
2017/08/25(金) 18:41:26.71ID:GmykFKX/
>>24
君がやってみれば?
2017/08/25(金) 18:46:25.29ID:sBQQtGzP
>>25
3つとも基本だからね
当たり前にやってるよ
君がやらない理由を教えてよ
27デフォルトの名無しさん
垢版 |
2017/08/25(金) 18:48:37.12ID:GmykFKX/
>>26
許可が出れば当然やってる
2017/08/25(金) 20:15:09.10ID:sBQQtGzP
>>27
そっか。じゃまず許可出してもらえるように頑張らないといけないね

自分で正規化などをやる立場になったら
そういう基本的なことすら行われない原因が何なのか
もう少し違う視点から見れるようになると思うよ
2017/08/25(金) 20:27:03.43ID:CEzIFhYx
>>27
許可がでればってw

だからお前はry
2017/08/25(金) 20:59:55.57ID:58ENjuei
>>27
たぶん今の位置が幸せだと思うよ
2017/08/25(金) 21:14:43.02ID:Yqz1DVXO
データベースのデータ設計を変更するのは相当広い範囲に影響するからね。
後から入ったやつが簡単にどうこうできることじゃない。
だからこそ大事だという言い分はそんな間違ってはいない。
32デフォルトの名無しさん
垢版 |
2017/08/25(金) 22:29:46.18ID:qYmRzh7v
>>30
それは同意かな
33デフォルトの名無しさん
垢版 |
2017/08/25(金) 22:40:28.35ID:qYmRzh7v
>>28

「締切に間に合えば好きにしてもらっていいよ」
と言われることもあるし
許可が出ることもあるし
1人プロジェクトなら当然やってる

もちろん

ダメだと言われることもある
2017/08/26(土) 02:19:36.07ID:YVaPdeR/
確かに正規化とか出来てないと後の辻褄合わせが無茶苦茶大変だわw

データのライフサイクルなんかも全く考慮されてないしw
2017/08/26(土) 02:25:23.12ID:YVaPdeR/
大企業でもデータを統括する部署なり役職なり全然ないからなw

データベースを単なるデータの入れ物ぐらいにしか思っていない奴がやりたい放題だよw
2017/08/26(土) 08:37:38.87ID:Uw/VUUHZ
データベースなんて要はエクセルだろ?
2017/08/26(土) 08:47:04.50ID:PFJfBtDX
ワロス
38デフォルトの名無しさん
垢版 |
2017/08/26(土) 09:15:37.31ID:aZ+D16Yp
>>36
そんな感覚だよねー
2017/08/26(土) 13:40:09.00ID:RLeWOsq7
以前関わったプロジェクトで10個ぐらいのフィルードの複合キーを主キーにしてるテーブルをみた時はさすがに設計した奴死ねと思ったわ

主キーが
都道府県コード + 市区町村コード + 支店コード + 部門コード + ラインコード + 品種コード + グループコード + 製品コード + 製造年月 + 連番

みたいな感じだった
あぁ、こりゃ炎上するわと納得した
2017/08/26(土) 14:42:02.27ID:3FHeSYNk
>>36
クエリかけられる excel と考えればそんなに間違ってもいないかな。
excel だろうとなんだろうと正規化は意識した方が良い。
41デフォルトの名無しさん
垢版 |
2017/08/26(土) 16:01:07.97ID:ZKx1xKF8
>>40
外部キー制約あってこその正規化だよ
2017/08/26(土) 16:10:41.94ID:3FHeSYNk
なるほど確かにエクセルだと、その種の制約かけるのが相当めんどい。
2017/08/26(土) 16:18:53.65ID:nwDxp1oi
お前が関わったプロジェクト全般てなだけで開発全般とは言えないな。
2017/08/26(土) 16:40:35.97ID:azDqTcfP
>>39
いい例だと思うんだけど、それは正規化されてないのが原因じゃないんだよね
そんな主キーでもきちんと正規化されてる場合だってあるから


正規化はたいていの人が少し慣れればほとんど意識せずに出来るようになるけど
それと優れたデータベース設計が出来るかどうかとは全く別の話
だから「データベース設計≒テーブルの正規化」的な考え方の人が
設計してるうちは炎上の可能性は下がらない気がする
2017/08/26(土) 16:51:27.16ID:Q9fQ6bxK
正規化ゆうても第1から第5まであるわな
さすがに第5までやるのもやりすぎなんで、ほとんど第3までやろうけど
というか第3正規化できてないと大概炎上するわな
46デフォルトの名無しさん
垢版 |
2017/08/26(土) 23:41:10.41ID:ZKx1xKF8
正規化などが行われていなければ
ほぼ確実に炎上するとすれば
結局開発で最も大切なのは正規化などだよ
2017/08/26(土) 23:48:12.61ID:o6LH0P6q
え?なに?正規化することで炎上が解決した事例でもあんの?
ないじゃんwww
48デフォルトの名無しさん
垢版 |
2017/08/26(土) 23:59:32.28ID:ZKx1xKF8
>>47
君は正規化をやらないの?
2017/08/27(日) 00:18:49.27ID:sNhXAArf
>>48
重要なのは正規化することで炎上しないのが
本当かってことでしょう?w
50デフォルトの名無しさん
垢版 |
2017/08/27(日) 00:33:18.16ID:VryqwFGe
>>49
正規化などが行われていない炎上プロジェクトで
「正規化などをやるべきだ」と言った人がいるとして
その人の意見は通るかな?
2017/08/27(日) 00:36:24.38ID:5LlLs1qL
まあ行き当たりばったりな設計で力押しが多いよな
2017/08/27(日) 00:46:07.69ID:QZuIwK0r
>>50
正規化してないことが炎上の真の原因だと納得させられるなら
その人の意見は通るでしょ
みんな炎上なんて嫌なんだから
53デフォルトの名無しさん
垢版 |
2017/08/27(日) 00:55:59.03ID:VryqwFGe
>>52
納得させることが出来ると思う?
2017/08/27(日) 00:56:07.71ID:QZuIwK0r
 
顧客ID, 氏名, メールアドレス, 郵便番号, 都道府県, 市町村, …

↑住所のところが正規化されてないけど
こういう顧客テーブル使ってても炎上とは無縁の会社いくつも知ってるよ
炎上防ぐために正規化する?
2017/08/27(日) 00:57:53.81ID:QZuIwK0r
>>53
そう主張できる論拠がないからね
少なくとも今のところこのスレでは

だから誰も納得しない
56デフォルトの名無しさん
垢版 |
2017/08/27(日) 00:58:43.29ID:VryqwFGe
>>55
だから君は正規化などをやらないと
2017/08/27(日) 01:05:41.41ID:QZuIwK0r
>>56
それ論点ずらしって言うんだよ
「炎上するのは正規化してないから」や「正規化すれば炎上の可能性が小さい」という主張に対する反証を出してるだけ

俺が正規化するかどうかとは何の関係もない
都合が悪くなると論点ずらしするのはよくないね
もっと考えないと
2017/08/27(日) 01:11:16.15ID:lDZtG8Od
>>54
市町村合併とかの時に大変そうだな
まぁもう暫くはないだろうけど
あ!金もらえるなら別に大変でもいいか
タダでやれとか言われたら涙目だけど
2017/08/27(日) 01:11:33.07ID:5LlLs1qL
そもそも正規化が何たるかを知らない

知った上で正規化崩ししているなら話はまた別
60デフォルトの名無しさん
垢版 |
2017/08/27(日) 01:22:38.07ID:VryqwFGe
>>59
それは正論
「敢えて正規化を崩している」とか
「敢えて制約を外してる」とかなら
それはそれでok
61デフォルトの名無しさん
垢版 |
2017/08/27(日) 01:29:04.48ID:VryqwFGe
>>57
それは話が逆

正規化などは「当然やるべきこと」だよ

説明が必要だとすれば
敢えて正規化を崩したり
敢えて制約を外したりする場合だよ
2017/08/27(日) 01:50:48.68ID:sNhXAArf
そいで正規化して炎上が収まった実例でも有るの?
63デフォルトの名無しさん
垢版 |
2017/08/27(日) 01:55:57.44ID:VryqwFGe
>>62

正規化などが行われていない炎上プロジェクトで
「正規化などをやるべきだ」と言った人がいるとして
その人の意見は通るかな?
2017/08/27(日) 02:00:25.45ID:lDZtG8Od
炎上してるプロジェクトで、設計の初期段階まで戻って正規化をやり直す時間なんかくれるわけないわな
つまり、進むも地獄、戻るも地獄の状況で、地獄の深みに突き進んでいくしかないわけさ
まさに、デスマーチ
笑いながらウンコ漏らすってもんよ
2017/08/27(日) 02:09:04.83ID:QZuIwK0r
>>61
それ正規化しないと炎上しやすいっていう主張の根拠になってるの?

ループしすぎじゃないか?
66デフォルトの名無しさん
垢版 |
2017/08/27(日) 02:13:54.74ID:VryqwFGe
>>65
「正規化しないと炎上しやすい」っていう主張に根拠が必要とは思えん
2017/08/27(日) 04:17:04.67ID:0cj4lMWm
炎上してる場合、テストを書こうだってほとんど通らないよw
ただひたすら言われたことやるだけw
2017/08/27(日) 05:29:14.49ID:sNhXAArf
>>63

コーディング規約がない炎上プロジェクトで
「コーディング規約を作るべきだ」と言った人がいるとして
その人の意見は通るかな?


つまり、あんたが言いたいことはどういうこと?
2017/08/27(日) 06:49:44.81ID:5LlLs1qL
上がポンコツだとなにやっても無駄無駄無駄ァッ!って事じゃないかと
70デフォルトの名無しさん
垢版 |
2017/08/27(日) 09:30:22.66ID:2IgWlIeb
>>67
少しづつテストを入れるなら
普通に通ると思うよ

>>68
少しづつコーディング規約を適用していくなら
普通に通ると思うよ

>>69
それはある
2017/08/27(日) 09:39:07.87ID:5LlLs1qL
本当に上が体育会系の脳筋のごますりと金勘定しか興味ない奴だと大変だわ
72デフォルトの名無しさん
垢版 |
2017/08/27(日) 13:02:52.37ID:7sdTDI+/
>>71
そんな連中ばかりでも
正規化などの「当然やるべきこと」を
普通にやらせてくれるなら
まだマシだけどね
2017/08/27(日) 13:14:26.04ID:VryqwFGe
「テーブル数が増えると管理が面倒だから〜」確実にあんたが面倒にしている
74デフォルトの名無しさん
垢版 |
2017/08/27(日) 13:27:18.19ID:7sdTDI+/
>>73
本当にそれだよね
2017/08/27(日) 14:53:14.86ID:V0hwi73r
正規化するとパフォーマンスに影響があるから
崩しましょうとか、正規化する前にやるなよw
2017/08/27(日) 14:58:15.64ID:sNhXAArf
>>70
> 少しづつテストを入れるなら
> 普通に通ると思うよ

あんたテスト書いたこと有る?
テストの量は実装コード以上になる上に
炎上しているようなものは実装コードも
テスト可能になってないのだから、
ようするに工数が今の3倍ぐらいになるってことだよ

テストなんてのは最初から書いて
テスト可能なように設計しておくのが前提
77デフォルトの名無しさん
垢版 |
2017/08/27(日) 16:04:34.86ID:1mZPOaVb
>>76
カバレッジ100%でも目指してるの?
2017/08/27(日) 16:17:02.37ID:5LlLs1qL
どの工程の設計であろうと、「やる前によく考えろ」の一言に尽きる

期間がない、予算がない、で取り敢えずのその場しのぎの設計が多い

結局いい加減な設計は後で何十倍にもなって自分に返ってくるってのにな

何事も初動が大事
2017/08/27(日) 16:23:14.96ID:sNhXAArf
>>77
100%は目指してないが
意味があるぐらいは目指すだろ

たった一個書いて終わりか?
2017/08/27(日) 16:47:00.08ID:okZux0mu
正規化とか知らない素人同然のなんちゃってSEが設計してるからどうしようもない
未熟者が上流に従事することなど医療や建設の業界ではあり得ないことだが、それが
平然とまかり通るのがIT業界
目に見える形での直接的な人命への影響がないから見過ごされているが、実は人の体力ばかりか精神をも蝕み最悪殺すこともあるというのに
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況