DB設計を語るスレ 10 [無断転載禁止]©2ch.net

1NAME IS NULL2017/05/22(月) 16:38:31.52ID:???
語れ

前スレ
DB設計を語るスレ 9
http://echo.2ch.net/test/read.cgi/db/1444733172/

2NAME IS NULL2017/05/22(月) 17:22:02.30ID:???
1ちょつ

3NAME IS NULL2017/05/22(月) 21:59:23.81ID:???

4NAME IS NULL2017/05/23(火) 09:06:17.88ID:1YMhep2r

5NAME IS NULL2017/05/25(木) 15:57:16.88ID:???
「複合主キーにしろ」野郎、うぜー

6NAME IS NULL2017/05/26(金) 22:01:38.57ID:???
どれのことかよくわからんけど、たぶんバカが逆切れしてるんだろうなぁ。

7NAME IS NULL2017/05/29(月) 19:54:48.57ID:???
おつ!

8NAME IS NULL2017/08/23(水) 00:45:19.03ID:???
カッペラッパー最高

9NAME IS NULL2017/08/25(金) 05:55:35.66ID:???
かっぺラッパー最高

10NAME IS NULL2017/10/31(火) 23:10:54.44ID:???
例えば食料品の情報をテーブルに入れるとすると
キッコーマン醤油 500ml 300円 塩分8%
ネスカフェ 300g 450円
菊正宗 1.8L 1000円 アルコール度数15
こんなデータだと、商品名や単価は各データに共通ですが、それ以外は共通点が有りません。
こう言う場合どんなカラムを持つテーブルを作成すべきですか?

11NAME IS NULL2017/10/31(火) 23:55:10.31ID:???
各数値をなにかに使うならカラムを作ればいいし
単なる文字情報なら商品名に突っ込んどけばいい

12NAME IS NULL2017/11/01(水) 00:01:10.65ID:???
>>11
>各数値をなにかに使うならカラムを作ればいいし
商品名 単価 塩分 アルコール度数 、、、
みたいにするって事ですか?
>単なる文字情報なら商品名に突っ込んどけばいい
それだと例えば 15<アルコール度数 みたいな検索がやり辛いですよね?

13NAME IS NULL2017/11/01(水) 00:12:16.37ID:???
その例だけ見ると内容量も共通

アルコール度数や塩分濃度みたいな商品の詳細情報で
精度・性能ともに高いレベルのフィルタリングが必須なら
そういう分類で別途ククリだす

価格.comの検索とかで
商品カテゴリ毎に詳細検索できる項目を別途用意してるよね
あのイメージ

14NAME IS NULL2017/11/01(水) 07:07:56.85ID:???
>>13
>そういう分類で別途ククリだす

>価格.comの検索とかで
>商品カテゴリ毎に詳細検索できる項目を別途用意してるよね
>あのイメージ
まだよくわからないんですが、一つのテーブルでは無くて、複数のテーブルに分けるようなイメージですか?
そうだとしても、よく分かりません。

15NAME IS NULL2017/11/01(水) 14:40:35.09ID:???
>>14
「データベース 派生関係」でググって

16NAME IS NULL2017/11/01(水) 16:39:16.89ID:???
>>10
EAV

商品 (商品ID, 商品名, 単価)
商品属性 (商品ID, 属性名, 値, 単位)

17NAME IS NULL2017/11/01(水) 17:15:33.60ID:???
EAVはRDB的にはほぼ例外なくアンチパターン

18NAME IS NULL2017/11/01(水) 18:05:43.74ID:???
>>17
ならより良い解答してあげて

19NAME IS NULL2017/11/01(水) 18:08:06.97ID:???
jsonで入れとけばよくね?

20NAME IS NULL2017/11/01(水) 19:18:20.98ID:???
>>17
お前みたいな低能にはそうなんだろうな...

21NAME IS NULL2017/11/01(水) 20:18:17.14ID:33PRYza3
ただの入れ物にしていく時代に逆行するパターンだなw

22NAME IS NULL2017/11/01(水) 20:46:47.43ID:???
実際価格コムだとどうしてんだろうね
基本マスタとカテゴリごとのマスタに分けてる感はあるけど

23NAME IS NULL2017/11/01(水) 21:10:54.54ID:???
>>18
派生関係

24NAME IS NULL2017/11/01(水) 21:18:05.38ID:???
>>22
金融商品やプロバイダは別として
家電やPC系は共通マスタと派生マスタで管理してると思うよ
パフォーマンスのための最適化は別途してるかもしれないけどね

http://kakaku.com/pc/note-pc/itemlist.aspx?pdf_Spec101=39
http://kakaku.com/kaden/lcd-tv/itemlist.aspx?pdf_Spec301=42-46

↑この辺比べるとよく分かる

25NAME IS NULL2017/11/01(水) 21:46:09.22ID:???
>>23
商品の種類だけテーブルを増やしていくんだな
買った商品一覧を詳細付きで取ってきたい時とかすげぇ面倒そうだ

26NAME IS NULL2017/11/01(水) 21:49:42.43ID:33PRYza3
>>25
そんな要件があると思えない。

27NAME IS NULL2017/11/01(水) 22:24:52.60ID:???
>>26
仮定の話なんで
ちなみにやる事になったらどんな実装で対応する?
後学のために知っておきたい

28102017/11/01(水) 22:58:04.66ID:???
皆さんありがとうございました。
>>24
この価格コムの場合、
[最安価格][売れ筋][レビュー評価][クチコミ件数][登録日][スペック情報]
のようにしておいて、
[スペック情報]の部分でパソコンやテレビなどのカテゴリーの事なる製品の
情報を保管するわけですね。
そう言うのを共通マスタと派生マスタと言うんですか?
ググって勉強してみます。
疑問点があればまた質問しますので、よろしくお願いいたします。

29242017/11/01(水) 23:50:31.77ID:???
自分で言っといてなんだが共通マスタと派生マスタという呼び方はあまり一般的ではないかも
>>22の書いてる基本マスタとカテゴリ別マスタみたいな呼び方のほうが多いかもね
とりあえずデータベースの派生関係とか継承でググれば解説してるサイト出てくるよ

30NAME IS NULL2017/11/04(土) 01:17:17.38ID:???
派生マスタってじつは見たことない
たいていカラム増やすか予備カラムにまとめてぶっこんでる

31NAME IS NULL2017/11/04(土) 14:30:10.74ID:???
>>30
>予備カラムにまとめてぶっこんでる
そんなの手抜きシステムだろ

32NAME IS NULL2017/11/06(月) 15:55:51.67ID:???
>>19
そんなの有り?

33NAME IS NULL2017/12/13(水) 20:21:33.68ID:id+unZ0U
名簿みたいなデータではPKを何にしたら良いでしょうか?
電話番号だと電話が無い人もいるし。

34NAME IS NULL2017/12/13(水) 23:20:33.63ID:???
ほんとになにもないなら自分で連番振っとけばいいんじゃね

35NAME IS NULL2017/12/14(木) 10:20:17.61ID:???
まー名寄せというのは名前が付くくらい昔からある根深い問題だよな

36NAME IS NULL2017/12/14(木) 11:24:40.98ID:???
ハッシュを使うのはどうなん?

37NAME IS NULL2017/12/14(木) 22:30:10.07ID:???
同じことだよ。ハッシュで区別できるためには元のデータで区別できなきゃならん。
連番も似たようなもの。

38NAME IS NULL2017/12/15(金) 01:33:41.72ID:???
一般的なハッシュってのは
違う物に対して同じ値を生成するんだぜ
元のデータで区別できたとしても、ハッシュかけた段階で区別できなくなる可能性があるんだが
そんなものを主キーにするとか狂気のさただな

39NAME IS NULL2017/12/15(金) 09:28:07.27ID:???
>>38
>一般的なハッシュってのは
>違う物に対して同じ値を生成するんだぜ
そんなハッシュあるのかw

40NAME IS NULL2017/12/15(金) 11:30:27.39ID:???
まったくないとは言わんが
天文学的に小さいな

41NAME IS NULL2017/12/15(金) 12:21:10.16ID:???
つまりハッシュ値と連番は本質的に全く別物

42NAME IS NULL2017/12/15(金) 12:22:24.34ID:???
ハッシュ衝突は理屈上あるが
元データさえ違うなら心配する確率ではないね
とはいえ、PKに使うものじゃないと思うし連番で十分じゃないかな

43NAME IS NULL2017/12/15(金) 20:41:37.20ID:6QrkU8mN
いや元が同じだったら衝突とは言わんからw

44NAME IS NULL2017/12/15(金) 22:00:00.19ID:???
ハッシュが衝突しないとか言ってる奴はMD5みたいな奴しか知らんのか?
理屈上どころか衝突前提のハッシュなんていくらでもある

45NAME IS NULL2017/12/16(土) 07:09:25.86ID:E1KHECAF
>>44
おまえは何の勘違いをしとるんやw

46NAME IS NULL2017/12/16(土) 08:06:02.76ID:???
>>45
はあ?
衝突前提のハッシュ知らんのか?
せめてここでも見とけよ
https://ja.m.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E9%96%A2%E6%95%B0

47NAME IS NULL2017/12/16(土) 12:38:08.13ID:???
>>46
で、それ見て何を勘違いしたんやお前はw

48NAME IS NULL2017/12/16(土) 13:13:01.80ID:???
なんだ、単なるレス古事記かよ

49NAME IS NULL2017/12/16(土) 14:38:38.92ID:???
文脈やと思うけどなぁ

50NAME IS NULL2017/12/16(土) 15:28:06.06ID:???
MD5辺りを単にハッシュと書いたアホが引っ込みつかなくなってるだけでしょ

51NAME IS NULL2017/12/16(土) 16:16:42.51ID:???
というか、MD5はハッシュだし
MD5だって衝突の可能性はあるわけだが

52NAME IS NULL2017/12/16(土) 21:36:50.89ID:E1KHECAF
おいおいMD5はハッシュ関数やぞw

53NAME IS NULL2017/12/16(土) 22:34:42.89ID:???
>>52
こんなアホな突っ込み久々に見たわ w

54NAME IS NULL2017/12/16(土) 22:56:10.26ID:E1KHECAF
>>53
やっとわかったわ
お前勘違いやなくそもそも根本的に何もわかっとらんやろw

55NAME IS NULL2017/12/16(土) 23:00:47.03ID:???
友達いないんだろうな...
まあ頑張って一人て吠えてなよ w

56NAME IS NULL2017/12/16(土) 23:06:48.97ID:E1KHECAF
>>55
いやお前がもっと頑張れやw
最初の勢いはどうしたw

57NAME IS NULL2017/12/17(日) 08:05:30.02ID:???
また吠えてるよ...
技術的な話じゃなくなると勢いあるな w

58NAME IS NULL2017/12/17(日) 12:37:49.59ID:???
>>57
え?技術的な話じゃなかったのかw
お前のその深い勘違いの根っこは一体どこにあんねんw

59NAME IS NULL2017/12/17(日) 14:02:17.70ID:???
>>58
俺は技術的な話のつもりだったけど
「勘違い」としか連呼できないアホが絡んできたってだけのこと

60NAME IS NULL2017/12/17(日) 19:39:41.63ID:GmUw4YSY
>>59
しゃあないやろ勘違いをしとるんはお前なんやからw自業自得やぞw

61NAME IS NULL2017/12/18(月) 04:59:23.82ID:???
ほらね w

62NAME IS NULL2017/12/19(火) 16:42:48.07ID:N2E99BBw
>>61
どや?そろそろ耳の火照りもひいた頃合いやろからお前の勘違いを全部さらけだしてみたらどうや?
間違ってるとこおしえたるでw

63NAME IS NULL2017/12/19(火) 19:29:26.17ID:???
>>62
> 間違ってるとこおしえたるでw
書いてからほざけよ w
どうせ頓珍漢なことしか書けないから引っ張ってるだけだろ?

64NAME IS NULL2017/12/19(火) 19:59:07.34ID:N2E99BBw
>>63
アホかとっくにしびれをきらしとるわw
いいから早くお前がハッシュを何だと思ってるのか書けよ
お前の勘違いしてるとこ教えてやるからw

65NAME IS NULL2017/12/19(火) 22:29:33.59ID:???
どうせハッシュ関数とハッシュ値は違うとか言い出すんだろ
文脈で判断しろよ、バーカ w

66NAME IS NULL2017/12/20(水) 08:25:59.98ID:LkqKP4ic
>>65
それはもう教えてやったやつやろw頓珍漢はお前やわw
てかそんなに恥かくの嫌やったらはじめから何も言うなやw
ホンマにカスやなお前w

67NAME IS NULL2017/12/20(水) 08:46:00.54ID:???
言い当てられて顔真っ赤やん w

68NAME IS NULL2017/12/20(水) 08:57:14.74ID:LkqKP4ic
>>67
また動揺してエセ関西弁うつっとるでw恥ずかしいのぉ〜w

69NAME IS NULL2017/12/20(水) 12:55:06.94ID:???
>>68
まだ粘着してるのかよ w
勘違いと言い張るならどこのレス見てどう勘違いしてると思ったのか書けよ
それが書けないからいつまでも勘違いを連呼するしかないんだろ w

70NAME IS NULL2017/12/20(水) 15:28:12.50ID:LkqKP4ic
>>69
お前なあwメッチャ自分の勘違いが気になっとるくせになんで素直に聞けんのやw
粘着しとるのお前やでw恥ずかしいのぉ〜w

71NAME IS NULL2017/12/20(水) 17:47:08.79ID:???
はいはい、具体的なにも指摘できないならいちいち絡んでくるなよ w

72NAME IS NULL2017/12/20(水) 18:50:24.06ID:LkqKP4ic
>>71
何かうやむやにしたいみたいやけど悔しくてレス返さんと気がすまんのやなw
てかそもそも誰もお前がスキル高い奴だなんて思っとらんからそんなに悔しがる意味もないんやけんどなw

73NAME IS NULL2017/12/20(水) 19:09:52.02ID:???

74NAME IS NULL2017/12/20(水) 20:03:30.28ID:???
何のためにもならない罵り合いになってるので、もうやめたら?

75NAME IS NULL2017/12/20(水) 20:29:25.30ID:LkqKP4ic
>>73
まだレス返すんかwどんだけ悔しいんやw
無理してそんな煽りレスばっかしとらんと素直にハッシュについて言えばいいやんけw
教えてやるって何度も言っとるのにw

76NAME IS NULL2017/12/20(水) 21:17:35.06ID:???
>>75
>>46
煽りしかできないアホの出る幕じゃねーよ w

77NAME IS NULL2017/12/21(木) 07:29:56.41ID:m6k27wgo
>>76
おいおい何ふりだしに戻しとるんやw
やっぱり何もわかっとらんから自分の言葉で言えんやんけw
で、それみてお前どうやって衝突前提のハッシュなんて勘違いしたんやw
言ってみ?教えてやるからw盛大にバカにした後でやけどなwww

78NAME IS NULL2017/12/21(木) 08:07:26.64ID:???
当事者じゃないけど、うざいよ。

ハッシュテーブルのこといってるんじゃないの?グルーピングの用途でハッシュ関数使うって意味で

79NAME IS NULL2017/12/21(木) 10:05:36.30ID:???
データベースの用途で、グループ分けしたい時に
多対一の変換に意味があるのか?

80NAME IS NULL2017/12/21(木) 10:22:53.47ID:???
>>79
多対1じゃなくて、多対n。結合するときにないぶてきに使われるhash joinとかこの方式だよね。

81NAME IS NULL2017/12/21(木) 10:24:46.30ID:???
衝突前提じゃないハッシュは完全ハッシュとかいわれて普通はただのハッシュとは違う扱いなわけだが

いいかげん具体的な指摘なしで勘違いとしかほざけないやつはうざいわ

82NAME IS NULL2017/12/21(木) 10:49:25.14ID:o/6FHTRS
今日のお弁当にはハッシュドポテトが入っています

83NAME IS NULL2017/12/21(木) 12:54:19.84ID:???
>>77
> で、それみてお前どうやって衝突前提のハッシュなんて勘違いしたんやw
前提なしでハッシュって書いたら衝突するケースを想定するのは当たり前
そう言うことを知らなかった>>39が暴れてるだけだろ

84NAME IS NULL2017/12/21(木) 12:57:47.83ID:cIfjA39h
おやおやようやく勘違いの全貌が見えて来よったなw
後で教えたるからなw
とりあえずそれまでみんなで>>81を盛大にバカにしときw

85NAME IS NULL2017/12/21(木) 15:07:28.11ID:???
しつけえよ馬鹿

86NAME IS NULL2017/12/21(木) 15:50:38.56ID:???
で結局33の質問に対して正解は何?

87NAME IS NULL2017/12/21(木) 19:55:49.52ID:???
何の名簿か知らんけど、会社でも社員コードってのがあるんだから>>34で良いじゃん。
何揉めてんだか
>>33はそれの何が不満なんだよ。

88NAME IS NULL2017/12/21(木) 20:28:48.83ID:???
なんだこれ。

PKを連番じゃなくてハッシュ値にすべきって散々煽ってたのか。どんな回答するのかすげー気になるわ。

89NAME IS NULL2017/12/21(木) 21:31:06.81ID:???
>>86
>>87の言う通り社員番号とかのユニークキーがあればそれを使えばいい
なんにもなければ>>34の言うように連番を振るとかyymmdd+枝番とか要件によってユニークな番号を振ればいい
とりあえずハッシュバカは無視でいい w

90NAME IS NULL2017/12/21(木) 22:13:21.18ID:m6k27wgo
>>89
お?バカ少しおとなしくなったやんけw完全ハッシュはどうしたw

91NAME IS NULL2017/12/21(木) 22:40:25.61ID:???
なんだ、ただのキチガイか。

92NAME IS NULL2017/12/21(木) 22:42:05.48ID:???
安易に連番ってのもたいていバカだけどな。

93NAME IS NULL2017/12/21(木) 22:50:31.46ID:???
適切なものがなければ、作らなくて良いと思うが

94NAME IS NULL2017/12/22(金) 00:27:00.22ID:???
>>90
完全ハッシュについて調べてこいよ w

95NAME IS NULL2017/12/22(金) 00:30:58.20ID:???
>>92
もっといい解があるなら示してみてよ

>>93
> 適切なものがなければ、作らなくて良いと思うが

> PKを何にしたら良いでしょうか?
って言ってるのにバカですか?

96NAME IS NULL2017/12/22(金) 00:48:01.41ID:???
PKを指定しなければDB側で良きに計らってくれるんじゃ?

97NAME IS NULL2017/12/22(金) 03:07:52.25ID:???
連番を良きに計らってくれる機能は多くのDBMSで実装されてるが
PKを指定しないときによきに計らってくれるDBMSなんてみたことないわ

と言っといて、ACCESSとか勝手に連番でPK作ってくれた気もするな

すくなくともRDBMSの基本理念においては、すべてのテーブルはPKを持つべしっとなってる

98NAME IS NULL2017/12/22(金) 03:28:06.91ID:???
実際プライマリーキーのないテーブルが作れるんだから
持つべしってことはないでしょ

99NAME IS NULL2017/12/22(金) 05:48:11.28ID:???
住所、氏名を複合PKにするとか

100NAME IS NULL2017/12/22(金) 07:21:44.64ID:KAIeoRcz
>>94
ええでその調子やwビビらんともう少しその勘違い晒せやへたれw

新着レスの表示
レスを投稿する