![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
例えば、ブログサイトのように記事をユーザーに投稿させる場合を想定します。MySQLでIDをauto_incrementを使って管理する場合、記事が削除され場合、IDが歯抜け状態になります。もういちどIDを打ち直してもよいのですが、それをすると、その記事に関連するコメントテーブルなどに影響がてできます。
一方で、それなら、はじめから、auto_increment使わないようにして、その場合は、IDではなく、何を基準にするのがベストなのか? という質問になります。
今考えているのは、
・insertした時の日付
・ユーザーid
で、レコードを特定するやり方です。良いのか悪いのかお手本がないので、なんともいえないのですが、他のかたがたの意見・やり方があれば、是非聞きたいと思います。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_08.png?e8efa67)
No.2ベストアンサー
- 回答日時:
>auto_incrementしているidカラムが、限界に達した場合とか考えたら、歯抜けになっている部分が無駄に思えてきたのですけど、このあたりは、どうお考えでしょうか?
MySQLの場合、auto_incrementの最大値は定義したデータ型に依存したのではないでしょうか?
やとしたら、そのデータ型を決めるのもDB設計の一環なんで、運用過程で新規作成されるデータがどのくらいあるかetc.を見積もって定義すべきでしょうね。
ただ、ふと思ったところでは、新規データも多いけど削除データも多い・・・というケースでは、確かに他の項目をキーにした方がええかもしれません。
ポイントは、運用でどういったデータの入り方・消え方するかですね。
ありがとうございます。とても勉強になります。少なくても、これまでauto_incrementはしなければならないものだと思い込んでいましたので、削除が多い場合は、違うものをキーにしても問題ないということが分かりました。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_08.png?e8efa67)
No.1
- 回答日時:
>MySQLでIDをauto_incrementを使って管理する場合、記事が削除され場合、IDが歯抜け状態になります。
逆に、IDが歯抜けになって何が困るのでしょうか?
感覚的には確かに気持ち悪いんですが、DB設計として
「削除のいかんにかかわらず、過去に投稿した履歴を管理するID」
という位置づけをすればスッキリしませんか?
ちなみにおいらがやった仕事では、画像DBで固定の画像名に連番つけて管理してました。
運用してるうち、確かに歯抜けのデータばかり増えて気持ち悪かったけど、後々の管理はめっちゃ楽でしたよ!
ありがとうございます。他の方のやり方をお聞きするのは、かなりのお勉強になります。これまで、auto_incrementしまくっていたのですけど、auto_incrementしているidカラムが、限界に達した場合とか考えたら、歯抜けになっている部分が無駄に思えてきたのですけど、このあたりは、どうお考えでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- YouTube YouTubeのコンテンツIDについて教えてください。 1 2022/05/18 08:13
- ハッキング・フィッシング詐欺 スマホアプリのトラッキング 個人情報について 5 2023/03/31 08:16
- その他(セキュリティ) 匿名チャットアプリ トラッキング 個人情報について 1 2023/03/29 20:35
- その他(セキュリティ) 匿名チャットアプリでの知られたくない会話 個人情報について 1 2023/03/29 18:08
- ポイントサービス・マイル Pontaポイントの移行・統合 3 2023/03/06 21:49
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- au(KDDI) auスマートパスプレミアム解約できなくて困ってます! 自分の管理不足でお恥ずかしいのですが、詳しい方 6 2023/02/27 13:37
- docomo(ドコモ) こんにちは。 auキャリアから、docomo ahamoに機種変更したい者です。 今、使っているau 3 2022/09/09 08:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csvデータ不要列の削除をbatフ...
-
Excel VBAのユーザーフォームで...
-
追加クエリで重複データなしで...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
【SQL】他テーブルに含まれる値...
-
joinの場合のテーブル名の別名...
-
sqlに記述できない文字
-
SELECTした結果に行番号を求めたい
-
集計でテストの各教科の最高得...
-
既存データをINSERT文にして出...
-
オラクルのUPDATEで複数テーブル
-
SQLで、Join句で結合したテ...
-
truncate tableを使って複数の...
-
IDとパスワードについて。
-
Accessで今日から5日後
-
パススルークエリ&ACCESSテーブ...
-
PostgreSQLのtimestamp型で時間...
-
既にテーブルが存在する場合の...
-
データ削除とSQL*Loaderでのイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
pandasでsqlite3にテーブル作成...
-
csvデータ不要列の削除をbatフ...
-
【VB】セルが空になるまで処理...
-
JDBCを使ってdate型へのINSERT...
-
追加クエリで重複データなしで...
-
Excel VBAのユーザーフォームで...
-
マクロでファイルを読み込み、...
-
VBAでの行数を揃える方法
-
ACCESS VBAでSeekメソッドの処...
-
エクセルで去年のデータを今年...
-
エクセル 2つの列にある値の完...
-
ListBoxにAddItemする際、重複...
-
Web制作において「サイト設定」...
-
一週間前から,今までVBAで行っ...
-
Pythonのsetを有効活用する方法...
-
データテーブルの使い方に関して
-
$_GET 説明で 専門書など ごた...
-
EXCELで外部データの取り込みが...
-
機械語
-
MySQLでauto_incrementをつかわ...
おすすめ情報
ありがとうございます。他の方のやり方をお聞きするのは、かなりのお勉強になります。これまで、auto_incrementしまくっていたのですけど、auto_incrementしているidカラムが、限界に達した場合とか考えたら、歯抜けになっている部分が無駄に思えてきたのですけど、このあたりは、どうお考えでしょうか?