TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
UNIXプログラミング質問すれ Part10
将来性ないプログラミング言語。Delphi含まれず安心
Win32API質問箱 Build124
Pythonのお勉強 Part62
Visual Studio 2019
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
C++相談室 part148
Kotlin 3
Win32API質問箱 Build125
【MACRO】Google Apps Script 質問スレ【DRIVE】

結局開発で最も大切なのはテーブルの正規化と制約


1 :2017/08/24 〜 最終レス :2018/07/05
テーブルを正規化したり
適切なデータ型を決定したり
制約を定義するといったことが
開発の中で最も大切

炎上してるプロジェクトは
必ずと言って良いほど
これらを軽視している

2 :
整理整頓、ちゃんとしようってことなんだな。
炎上なんてのは当たり前のことが当たり前にできてないってことがほとんどで。

3 :
DB側で管理できることは
DB側でやれってことでいいの?

4 :
そんな話じゃないよ

テーブルを正規化したり
適切なデータ型を決定したり
制約を定義する
というのをやっておけば
そうそう炎上なんかしない
という話

5 :
そんな馬鹿な

6 :
そんな馬鹿なと思うかもしれないけど
意外と事実だよ

7 :
> テーブルを正規化したり
> 適切なデータ型を決定したり
> 制約を定義する
なんて基本中の基本で、それでも炎上するプロジェクト多数なんだが

8 :
それは、顧客仕様を分析できてないからだお

9 :
>>7
そんなことはない
炎上するプロジェクトの大半は

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

というのをやってない

10 :
大半: 全体の半分以上

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

定量的なデータあるの? 大半って何% 母集団は何?

11 :
誰に何を聞いてるんだ?

12 :
>>8
だよね

原因と結果を混同してたら根本原因にはたどり着けない

13 :
デスマ案件の原因Top3
・低品質な要求分析・要件定義
・最初から無理めなスケジュール・予算
・わがまま傲慢顧客

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

次々点 (※マネジメントが優秀ならこれらの理由だけで炎上する可能性は小さい)
・既存システム・連携システムの負の遺産
・エンジニアの技術力不足
・採用技術の不確実性

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

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

の4つに分けたら

A<Bであるし
C>Dである

15 :
>>13
それは幻想
現実には

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

というのを
やってるかやってないかで
簡単に決まってしまう

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

以後この3つを「正規化など」って俺は書くね

17 :
正規化などと炎上プロジェクトの間には
ビックリするほど関係性がある

嘘だと思うなら調べてみるといい

18 :
肌感覚だけどそりゃそうだろうね。
正規化をまじめに考える余裕もないような現場なら炎上しやすいってか炎上中というか。

19 :
結局開発で最も大切なのは仕様
上手くいかないのは仕様が滅茶苦茶な時
仕様が糞だと設計もコードも乱雑になり糞になる

客先常駐やSIerはその場しのぎの糞コードばかり書くことになる
基本自社開発な企業行くと、意味不明な仕様もなくなって楽になった

20 :
>>18
正規化などを「余裕のある時にやればいいこと」と位置づけた時から炎上は始まってる

21 :
>>19
「仕様が糞」って具体的にどんな状態?

22 :
正規化・適切なデータ型選択・制約の定義をすれば炎上しないと思ってるなら
自分でそれをやればいいと思うんだけど何でやらないの?

23 :
>>22
君がやってみれば?
実際に正規化などが行われていない
炎上プロジェクトでさ

上の方でも書いたけど「正規化など」というのは
1.テーブルを正規化する
2.適切なデータ型を決定する
3.制約を定義する
の3つね

24 :
>>23
>実際に正規化などが行われていない

行われてないって何で他人事なの?
行われてないなら行えばいいじゃん

25 :
>>24
君がやってみれば?

26 :
>>25
3つとも基本だからね
当たり前にやってるよ
君がやらない理由を教えてよ

27 :
>>26
許可が出れば当然やってる

28 :
>>27
そっか。じゃまず許可出してもらえるように頑張らないといけないね

自分で正規化などをやる立場になったら
そういう基本的なことすら行われない原因が何なのか
もう少し違う視点から見れるようになると思うよ

29 :
>>27
許可がでればってw

だからお前はry

30 :
>>27
たぶん今の位置が幸せだと思うよ

31 :
データベースのデータ設計を変更するのは相当広い範囲に影響するからね。
後から入ったやつが簡単にどうこうできることじゃない。
だからこそ大事だという言い分はそんな間違ってはいない。

32 :
>>30
それは同意かな

33 :
>>28

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

もちろん

ダメだと言われることもある

34 :
確かに正規化とか出来てないと後の辻褄合わせが無茶苦茶大変だわw

データのライフサイクルなんかも全く考慮されてないしw

35 :
大企業でもデータを統括する部署なり役職なり全然ないからなw

データベースを単なるデータの入れ物ぐらいにしか思っていない奴がやりたい放題だよw

36 :
データベースなんて要はエクセルだろ?

37 :
ワロス

38 :
>>36
そんな感覚だよねー

39 :
以前関わったプロジェクトで10個ぐらいのフィルードの複合キーを主キーにしてるテーブルをみた時はさすがに設計した奴Rと思ったわ

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

みたいな感じだった
あぁ、こりゃ炎上するわと納得した

40 :
>>36
クエリかけられる excel と考えればそんなに間違ってもいないかな。
excel だろうとなんだろうと正規化は意識した方が良い。

41 :
>>40
外部キー制約あってこその正規化だよ

42 :
なるほど確かにエクセルだと、その種の制約かけるのが相当めんどい。

43 :
お前が関わったプロジェクト全般てなだけで開発全般とは言えないな。

44 :
>>39
いい例だと思うんだけど、それは正規化されてないのが原因じゃないんだよね
そんな主キーでもきちんと正規化されてる場合だってあるから


正規化はたいていの人が少し慣れればほとんど意識せずに出来るようになるけど
それと優れたデータベース設計が出来るかどうかとは全く別の話
だから「データベース設計≒テーブルの正規化」的な考え方の人が
設計してるうちは炎上の可能性は下がらない気がする

45 :
正規化ゆうても第1から第5まであるわな
さすがに第5までやるのもやりすぎなんで、ほとんど第3までやろうけど
というか第3正規化できてないと大概炎上するわな

46 :
正規化などが行われていなければ
ほぼ確実に炎上するとすれば
結局開発で最も大切なのは正規化などだよ

47 :
え?なに?正規化することで炎上が解決した事例でもあんの?
ないじゃんwww

48 :
>>47
君は正規化をやらないの?

49 :
>>48
重要なのは正規化することで炎上しないのが
本当かってことでしょう?w

50 :
>>49
正規化などが行われていない炎上プロジェクトで
「正規化などをやるべきだ」と言った人がいるとして
その人の意見は通るかな?

51 :
まあ行き当たりばったりな設計で力押しが多いよな

52 :
>>50
正規化してないことが炎上の真の原因だと納得させられるなら
その人の意見は通るでしょ
みんな炎上なんて嫌なんだから

53 :
>>52
納得させることが出来ると思う?

54 :
 
顧客ID, 氏名, メールアドレス, 郵便番号, 都道府県, 市町村, …

↑住所のところが正規化されてないけど
こういう顧客テーブル使ってても炎上とは無縁の会社いくつも知ってるよ
炎上防ぐために正規化する?

55 :
>>53
そう主張できる論拠がないからね
少なくとも今のところこのスレでは

だから誰も納得しない

56 :
>>55
だから君は正規化などをやらないと

57 :
>>56
それ論点ずらしって言うんだよ
「炎上するのは正規化してないから」や「正規化すれば炎上の可能性が小さい」という主張に対する反証を出してるだけ

俺が正規化するかどうかとは何の関係もない
都合が悪くなると論点ずらしするのはよくないね
もっと考えないと

58 :
>>54
市町村合併とかの時に大変そうだな
まぁもう暫くはないだろうけど
あ!金もらえるなら別に大変でもいいか
タダでやれとか言われたら涙目だけど

59 :
そもそも正規化が何たるかを知らない

知った上で正規化崩ししているなら話はまた別

60 :
>>59
それは正論
「敢えて正規化を崩している」とか
「敢えて制約を外してる」とかなら
それはそれでok

61 :
>>57
それは話が逆

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

説明が必要だとすれば
敢えて正規化を崩したり
敢えて制約を外したりする場合だよ

62 :
そいで正規化して炎上が収まった実例でも有るの?

63 :
>>62

正規化などが行われていない炎上プロジェクトで
「正規化などをやるべきだ」と言った人がいるとして
その人の意見は通るかな?

64 :
炎上してるプロジェクトで、設計の初期段階まで戻って正規化をやり直す時間なんかくれるわけないわな
つまり、進むも地獄、戻るも地獄の状況で、地獄の深みに突き進んでいくしかないわけさ
まさに、デスマーチ
笑いながらウンコ漏らすってもんよ

65 :
>>61
それ正規化しないと炎上しやすいっていう主張の根拠になってるの?

ループしすぎじゃないか?

66 :
>>65
「正規化しないと炎上しやすい」っていう主張に根拠が必要とは思えん

67 :
炎上してる場合、テストを書こうだってほとんど通らないよw
ただひたすら言われたことやるだけw

68 :
>>63

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


つまり、あんたが言いたいことはどういうこと?

69 :
上がポンコツだとなにやっても無駄無駄無駄ァッ!って事じゃないかと

70 :
>>67
少しづつテストを入れるなら
普通に通ると思うよ

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

>>69
それはある

71 :
本当に上が体育会系の脳筋のごますりと金勘定しか興味ない奴だと大変だわ

72 :
>>71
そんな連中ばかりでも
正規化などの「当然やるべきこと」を
普通にやらせてくれるなら
まだマシだけどね

73 :
「テーブル数が増えると管理が面倒だから〜」確実にあんたが面倒にしている

74 :
>>73
本当にそれだよね

75 :
正規化するとパフォーマンスに影響があるから
崩しましょうとか、正規化する前にやるなよw

76 :
>>70
> 少しづつテストを入れるなら
> 普通に通ると思うよ

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

テストなんてのは最初から書いて
テスト可能なように設計しておくのが前提

77 :
>>76
カバレッジ100%でも目指してるの?

78 :
どの工程の設計であろうと、「やる前によく考えろ」の一言に尽きる

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

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

何事も初動が大事

79 :
>>77
100%は目指してないが
意味があるぐらいは目指すだろ

たった一個書いて終わりか?

80 :
正規化とか知らない素人同然のなんちゃってSEが設計してるからどうしようもない
未熟者が上流に従事することなど医療や建設の業界ではあり得ないことだが、それが
平然とまかり通るのがIT業界
目に見える形での直接的な人命への影響がないから見過ごされているが、実は人の体力ばかりか精神をも蝕み最悪Rこともあるというのに

81 :
>>79
工数が増大しないように要所要所に入れればいいじゃん

>>80
ほんそれ

82 :
>>81
工数を増やさずに入れるのは無理
だからちょっとだけ入れて満足しましょうって話をしたんだろう?

テストがあればデグレが防げます
ただしテストは全体のごくわずかしか入れてません。
じゃ意味が無いって言ってるの

83 :
とくにテストを意識していないコードにテストを注入していくのは
かなり至難の業なわけ。
不可能ではないが、企業としてよっぽど本気になることがないとまず無理。

84 :
>>83
言葉がおかしい

85 :
>>83
え?なんで意味が無いの?

86 :
おっと乗り遅れたか
第1正規化は当然やるとして
第3正規化は基本やる必要ないぞ

87 :
>>86
どこまで正規化するかは状況しだいかもしれないけど
全くやらないのは論外だね

88 :
ちょっとまとめてみた

1.テーブルを正規化する
2.適切なデータ型を決定する
3.制約を定義する

この3つが実施されなければ炎上して当然

実施されなければ炎上して当然の重要事項であるから
「この3つを実施したい」と主張する側に説明責任は無く
「この3つを実施させない」と主張する側に説明責任はある

実施されなけれは炎上して当然の重要事項であるから
「テーブルが増えるから」なんて理由で実施させないのは
あってはならない

正規化した上で何か事情があって正規化を崩すのは構わない
それと正規化を実施しないというのは話が別

どこまで正規化するのかは状況しだいかだが
全く実施しなければ炎上して当然

89 :
データベース板でやってくれませんかね

90 :
>>89
あら
目障りだった?

91 :
ここでいいです

92 :
>>90
妥当なスレが既にあるので、そっちでやってください

何故データベース設計は軽視されるのか?
http://mevius.2ch.sc/test/read.cgi/db/1228061247/

頼むから正規化しろよ 第二正規形
http://mevius.2ch.sc/test/read.cgi/db/1116097001/

93 :
>>92
あら?
ウザかった?

94 :
スレ違いってだけだろ

95 :
いやスレどころか鼬飼い

96 :
>>1の範囲なら別にかまわないと思う
(マ板でやれという意見の人もいるかもしれない)

具体的な話をしたければ、データベース板でどうぞ

97 :
開発でDBが絡まない案件の方が少ない気がするな

それに向こうはここより過疎だし

98 :
正規化しないと炎上するだろうって事は分かるが
炎上してるからって正規化してないとは限らないと思う

99 :
>>98
もちろん正規化などをやってるプロジェクトでも炎上することはある

だけど

正規化などをしていなければ炎上して当然

これも仰る通り

100 :
>>99
テストをしていなければ炎上して当然だし、
コードレビューをしていなければ炎上して当然だし
コード設計をしていなければ炎上して当然だし
SEが役立たずだと炎上して当然だが?


100〜のスレッドの続きを読む
Visual Studio 2010 Part21
スレを勃てるまでもないC/C++の質問はここで 25 [隔離病棟]
【JavaScript系】 NILScript 【AutoHotkey風】
最も美しいプログラミング言語は? Part6
【DDD】ドメイン駆動設計【エリック・エヴァンス】
VRプログラム雑談【Unity/UnrealEngine】【HTC Vive/Oculus Rift/その他VR】
PureBasic
C++相談室 part147
お前らプログラミング言語どうやって覚えたんや?
C#で仕事ある?
--------------------
【バーチャルYoutuber】にじさんじ有ンチスレ13177【アンチスレの姫】
【ワッチョイなし】からかい上手の高木さん part47
【コードギアス】枢木スザクアンチスレ121【ウザク】
☆航空祭総合スレッド577☆
【ネットサヨク】相模原障害者施設19人虐殺した植松聖、犯行前「シールズに倣った活動する」
樋野まつり★ヴァンパイア騎士【第四十四夜】
タバコ吸わないクセに喫茶店行くキチガイw Part.9
ジェネリックはどこのメーカーのものが推奨できる?
【マダマダ】CMを語れ!その265【キニナル】
IDにダムが出るまで∈(・ω・)∋ダムーするスレ【68】
【コトブキヤ】フレームアームズ-FRAMEARMS- part66
【人形板】アフターオークション43【雑談/相談】
次いこ次
鈴木愛理が8月4日に重大発表のお知らせ
【乃木坂46】岩本蓮加応援スレ☆11【れんたん】
【地上波】近日放送開始の欧米ドラマ情報 8【BS】
西岡研介「関西生コンをマスコミがスルーするのは全国ニュースに値しないから」 ネット「北朝鮮と関与してる組織なんだから大ニュースだろ
へっぽこ雀士
【糖スト】自称ストーカー冤罪【春日井】
【生物】福島 どこへ行った?コウナゴ 今季水揚げゼロの見通し[04/28]
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼