[フレーム]
はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできます コメント表示の設定

ブックマークしました

ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

263users がブックマーク コメント 50

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

idをautoincrementして何が悪いの?

263 users zenn.dev/praha

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

はてなブックマーク

はてなブックマークで
関心をシェアしよう

みんなの興味と感想が集まることで
新しい発見や、深堀りがもっと楽しく

ユーザー登録

アカウントをお持ちの方はログインページ

記事へのコメント50

  • 注目コメント
  • 新着コメント
nannan12
前半はIDの話じゃないじゃん。RESTの設計にIDを使うかどうかが争点であって、こんなデメリットはスラグを設定したら済む話。

その他
dot
ナチュラルキーとサロゲートキーの違いが良くわかってないようにも見受けられる。例示された連番の弊害はわかるけど、それはシステムの都合であってRDBの設計は別という文化で育ってきたのでピンと来ない所もある。

その他
daibutsuda
Railsだと標準でCSRFトークンが入るので、当てずっぽでPOSTとかしようとしても404返るよ。メリットは設計がシンプルになり保守が容易になることでは?

その他
NetPenguin
DBの主キーの話だと想定して、MySQLだとクラスタ化インデクスなので連続している方が良さそう https://techblog.raccoon.ne.jp/archives/1627262796.html あとUUIDいっぱいで通信路を圧迫しちゃったというのを、10年ほどまえにやらかした。

その他
daira4000
いいとこ取りのULIDが都合良いんじゃないすかね

その他
peketamin
露出するIDと内部で割り振る通し番号はまた別の話のような

その他
raamen07
こういうの額面通りに間に受けてわけわからん設計しだす人出てくるから嫌。

その他
crexist
auto increment の利点は生成された順にソートしやすい、わかりやすいというのがあるとは思う。ただ、他のブコメにあるように ULID で代替はできそう

その他
maninthemiddle
挙げられてない理由で単なる連番だとIDを指定するようなUIでtypoがそのまま通ってしまいやすくなると言うのもある。1437を入れるはずなのに1347って打っちゃうのは非常にありがち

その他
mohno
UUIDはちょっと......と思ったら、↓ULIDなんてのがあるんだね。最近、そういうプログラムを書いてないけど(定期)

その他
moneyshark
uuid と autoincrement

その他
t2y-1979
[[database][design][security][performance]

その他
honma200
挙げられたことはUUIDv0とかで確かに保証されるが、autoincrementがダメというわけでもない。最後のものはそうなったら同じテーブル内でのPKが衝突するからエラーになるんでは?複数のDB上で同じテーブルならRDBMSがエラー出

その他
pascal256
(保証出来ないのに)連番をつい期待してしまう、とかもあるかなー。あと超高負荷時に問題がでるからUUID派だったけどクラスタインデックスの話もあるから、自分の中にまだ正解が無い...

その他
ed_v3
ケースバイケースだと思うけどタイトル見た時ここまでずれた論点だとは思わなかった。

その他
hamaco
要件によりそう。ただまあこの記事に書かれているのはURLの話とDBの話が混ざっているのでDBがautoincrementでURLには違うキーを使うとかあるしまあ。

その他
sotarok
要件によるけど、会員IDのようなもののランダマイズの利点については同意だな〜。(関係ないけど某国産SNSでURL 1つずつincして見てくと社の関係者と友人順に利用が広がっていく様がわかって面白かったよ、その昔)

その他
luccafort
autoincrementなIDが一概に駄目とも思ってはいないけどただ連番IDだとこういうことされるよね?は知識として知っておきたいし、それに変わるID形式が生まれたりするのはいいことなんだろうと思う。ULIDは知らなかった。

その他
numtostring
ULID がいいな。

その他
sisya
内部IDと表示名とユーザIDは全部別のものであると認識しないと事故が起こる。筆者はその辺りがとても危うく感じる。もう少し言葉の定義を厳密に認識し直した方がいい。

その他
buzztaiki
ブコメでいくつか容量の話がでてるけど、UUID や ULID もバイナリのまま扱えば128ビットだよ。

その他
versatile
url の id を db の id にする人はこの時代流石にもういないとは思うが

その他
n314
商品idを商品コードにしようとしたら、オペレーターがいつもidを使っていてアルファベットを入れられると作業効率がめっちゃ落ちるから数字だけにしてくれとかあったな。uuidだと効率が落ちるどころの騒ぎではない。

その他
pmint
フレームワークを否定する人と同じこと言ってる。「PDO::prepareを使うと、発行されたSQLが分からない」みたいな。無能扱いされるけど、それはそれで一理ある。「〇〇を使えばこれ全部できます」って文章にするといい。

その他
kabuquery
スクレイピング対策は別な話の気がするけど

その他
ducktoon
連番で管理しつつURL用にuuidっぽいやつを別カラムに持つようにしてる。連番は開発者にとってわかりやすい(一番重要)のと、DB効率が良い(らしい)

その他
kotatsuhal
こういった疑問をスルーせず出力したことを評価したい!周りに指摘してくれる人がいないとなぁなぁになって後で後悔するやつだから。

その他
rdrk
スター大量についてるけど、ほんとにRailsは既存レコードを"POST"で取ってCSRFには"404 not found"を返すの?

その他
Wafer
uuidでもulidでもDBを水平分割して運用してたら一意性を確保できないかもしれない気がするんだけど気のせい?ブックマークコメントを見渡してもあまり大規模なアクセスを想定していないように見える

その他
vuy
DBで採番するからSPoFになる的な話かと思ってたらただのお気持ち投稿だった。 / この記事投げつけたいな。 https://zenn.dev/j5ik2o/articles/a085ab3e3d0f197f6559

その他
Seitekisyoujyo
連番idやらないと複合ユニーク複合プライマリキーのアップデートが面倒だし、それで外部キーを指定したいと思った時に一手間かかる。複合ユニークやるぐらいなら連番id設けた方が絶対的に実装楽だと思う。

その他
raamen07
raamen07 こういうの額面通りに間に受けてわけわからん設計しだす人出てくるから嫌。

2022年02月08日 リンク

その他
kamm
悪いとする理由が微妙じゃないか...?bigint使っても8バイトで済むという効率性もあるし

その他
b-wind
はてブでは ULID を推す声が多い

その他
takeshi
ふたつほど言いたいことがあるが、また今度ね。

その他
yug1224
IDはULID使いたい

その他
nannan12
nannan12 前半はIDの話じゃないじゃん。RESTの設計にIDを使うかどうかが争点であって、こんなデメリットはスラグを設定したら済む話。

2022年02月07日 リンク

その他
dot
dot ナチュラルキーとサロゲートキーの違いが良くわかってないようにも見受けられる。例示された連番の弊害はわかるけど、それはシステムの都合であってRDBの設計は別という文化で育ってきたのでピンと来ない所もある。

2022年02月07日 リンク

その他
tacamula
プロダクトの状況で使い分けという身も蓋もない結論にしかならんのでは。あとログインユーザ自身のIDはセッションで判定すべきで、IDの予測を難しくくるのは場当たり的かな。

その他
rasterson
連番そのものは議論が分かれるかれしれないが、採番カウンタを1つのテーブルにまとめて持たせる設計は良くないよね。採番テーブルがボトルネックになってる例もあったし、ひどい場合はデッドロックの元になったり。

その他

注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

リンクを埋め込む

以下のコードをコピーしてサイトに埋め込むことができます

プレビュー
アプリのスクリーンショット
いまの話題をアプリでチェック!
  • バナー広告なし
  • ミュート機能あり
  • ダークモード搭載
アプリをダウンロード

関連記事

usersに達しました!

さんが1番目にブックマークした記事「idをautoincrement...」が注目されています。

気持ちをシェアしよう

ツイートする

idをautoincrementして何が悪いの?

idをautoincrementしない方が良い理由 こんにちは。株式会社プラハCEOの松原です。 最近プラハチャレン... idをautoincrementしない方が良い理由 こんにちは。株式会社プラハCEOの松原です。 最近プラハチャレンジの参加者とお話している際に 「PKのidはautoincrementするとして...」 とナチュラルにid=autoincrementするものという前提が見えたので、「当にidをautoincrementしても良いものだろうか?」と気になったことを書いてみようと思います。もしフレームワークが自動的にautoincrementでテーブルを作るからなんとなく使っているという方がいたらご一読いただいた後、それでも連番を使いたい理由があれば教えて欲しいです・・! 不必要に情報を晒すことになる スクレイピングされたり もしも僕が某大手に勤めているエンジニアで「競合サービスAにのってる物件情報、全部コピーして新しいサービス作ろうぜ」と指示されたらですよ?「人としてそれはやっちゃダメで

ブックマークしたユーザー

  • y-teraoka2025年08月04日 y-teraoka
  • ndxbn2024年11月10日 ndxbn
  • lilpacy2024年09月11日 lilpacy
  • moneyshark2024年02月21日 moneyshark
  • tofy2024年02月15日 tofy
  • kumamonchang2023年08月08日 kumamonchang
  • kihala2023年06月11日 kihala
  • kakedashinginx2023年01月25日 kakedashinginx
  • lanius2023年01月24日 lanius
  • t2y-19792023年01月22日 t2y-1979
  • techtech05212022年12月18日 techtech0521
  • sametashark2022年04月03日 sametashark
  • fuyu772022年03月11日 fuyu77
  • nntsugu2022年02月21日 nntsugu
  • kabukisan2022年02月19日 kabukisan
  • honma2002022年02月17日 honma200
  • pascal2562022年02月13日 pascal256
  • mjtai2022年02月11日 mjtai
すべてのユーザーの
詳細を表示します

ブックマークしたすべてのユーザー

同じサイトの新着

同じサイトの新着をもっと読む

いま人気の記事

いま人気の記事をもっと読む

いま人気の記事 - テクノロジー

いま人気の記事 - テクノロジーをもっと読む

新着記事 - テクノロジー

新着記事 - テクノロジーをもっと読む

同時期にブックマークされた記事

いま人気の記事 - 企業メディア

企業メディアをもっと読む

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /