
例えば、ブログサイトのように記事をユーザーに投稿させる場合を想定します。MySQLでIDをauto_incrementを使って管理する場合、記事が削除され場合、IDが歯抜け状態になります。もういちどIDを打ち直してもよいのですが、それをすると、その記事に関連するコメントテーブルなどに影響がてできます。
一方で、それなら、はじめから、auto_increment使わないようにして、その場合は、IDではなく、何を基準にするのがベストなのか? という質問になります。
今考えているのは、
・insertした時の日付
・ユーザーid
で、レコードを特定するやり方です。良いのか悪いのかお手本がないので、なんともいえないのですが、他のかたがたの意見・やり方があれば、是非聞きたいと思います。

No.2ベストアンサー
- 回答日時:
>auto_incrementしているidカラムが、限界に達した場合とか考えたら、歯抜けになっている部分が無駄に思えてきたのですけど、このあたりは、どうお考えでしょうか?
MySQLの場合、auto_incrementの最大値は定義したデータ型に依存したのではないでしょうか?
やとしたら、そのデータ型を決めるのもDB設計の一環なんで、運用過程で新規作成されるデータがどのくらいあるかetc.を見積もって定義すべきでしょうね。
ただ、ふと思ったところでは、新規データも多いけど削除データも多い・・・というケースでは、確かに他の項目をキーにした方がええかもしれません。
ポイントは、運用でどういったデータの入り方・消え方するかですね。
ありがとうございます。とても勉強になります。少なくても、これまでauto_incrementはしなければならないものだと思い込んでいましたので、削除が多い場合は、違うものをキーにしても問題ないということが分かりました。

No.1
- 回答日時:
>MySQLでIDをauto_incrementを使って管理する場合、記事が削除され場合、IDが歯抜け状態になります。
逆に、IDが歯抜けになって何が困るのでしょうか?
感覚的には確かに気持ち悪いんですが、DB設計として
「削除のいかんにかかわらず、過去に投稿した履歴を管理するID」
という位置づけをすればスッキリしませんか?
ちなみにおいらがやった仕事では、画像DBで固定の画像名に連番つけて管理してました。
運用してるうち、確かに歯抜けのデータばかり増えて気持ち悪かったけど、後々の管理はめっちゃ楽でしたよ!
ありがとうございます。他の方のやり方をお聞きするのは、かなりのお勉強になります。これまで、auto_incrementしまくっていたのですけど、auto_incrementしているidカラムが、限界に達した場合とか考えたら、歯抜けになっている部分が無駄に思えてきたのですけど、このあたりは、どうお考えでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
フォームで戻った際に入力済み...
-
セッション関数を使わずにファ...
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
アンドロイドスマホでのphp ech...
-
Postgresの特定のカラムからス...
-
ここで言う空文字の意味とは?
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
追加クエリで重複データなしで...
-
【VB】セルが空になるまで処理...
-
csvデータ不要列の削除をbatフ...
-
pandasでsqlite3にテーブル作成...
-
EXCELで外部データの取り込みが...
-
Excel VBAのユーザーフォームで...
-
エクセル 2つの列にある値の完...
-
JDBCを使ってdate型へのINSERT...
-
ACCESS VBAでSeekメソッドの処...
-
VBAで、新しい値のみを抜き出す...
-
マクロでファイルを読み込み、...
-
ListBoxにAddItemする際、重複...
-
自作アプリからAPIで他のアプリ...
-
PHPとMYSQL、DBのデータが空の...
-
テーブルの更新を簡単にできる...
-
WEBサイトって何ですか?
-
重複データをなくす
-
VBAでの行数を揃える方法
-
リストボックスからリストボッ...
-
エクセルデータをAccessに取り...
おすすめ情報
ありがとうございます。他の方のやり方をお聞きするのは、かなりのお勉強になります。これまで、auto_incrementしまくっていたのですけど、auto_incrementしているidカラムが、限界に達した場合とか考えたら、歯抜けになっている部分が無駄に思えてきたのですけど、このあたりは、どうお考えでしょうか?