73498


`Ruby on Rails` や `Laravel`
などにおいて、投稿された質問や動画を識別したい場合、IDを`Base64`などの文字列で指定することのメリットはなんですか？

たとえば、スタックーオーバーフローでは次のURLのように質問のIDを質問の識別子としています。

`https://ja.stackoverflow.com/questions/230`

`識別子: 230`

しかし、YouTubeでは動画のIDに対して次のURLのように文字列を動画の識別子としています。

`https://m.youtube.com/watch?v=8G_-WD7g1pE`

`識別子: 8G_-WD7g1pE`

質問や動画を識別する場合、IDではなく、文字列を使って識別するメリットを教えてください


CC BY-SA 4.0
2021-01-22T05:10:47.197
73492
2021-01-22T10:28:55.073
2021-01-22T05:21:33.800
43413
43413
question
ruby-on-rails laravel url
質問や動画などを識別するときのIDに文字列が使われる場合があるのはなぜ？


単純に **生成できるユニークな値** の数をどこまで扱うか、の違いではないでしょうか。

数字のみだと「0～9 (10種類) * 桁」だけですが、例に挙げた YouTube の場合には「0～9 (10種類) + a-zA-z (52種類) +
記号(-_など) * 桁数」で、生成できる値のバリエーションに違いが出てきます。

Stack Overflow (英語版) での最新質問IDは "65840005" でしたが、YouTube の例に揃えると以下のようになります。

[code]

    10^11 =            100,000,000,000  ## 0-9
    64^11 = 73,786,976,294,838,206,464  ## 0-9,a-zA-Z,-_
    
[/code]


CC BY-SA 4.0
2021-01-22T06:10:01.757
73493
2021-01-22T06:44:33.877
2021-01-22T06:44:33.877
3060
3060
73492
answer


識別子に文字列を指定するメリットは、

  * 現在発行済みの識別子の数が分からない（保持している動画の数を外部から知る手段が減る）。盛況なのか過疎状態なのかこれだけで分かりません。
  * 識別子から新旧の情報を知ることができない。数値だと若いものほど古いことがわかる。
  * 数値ではないので、カウントアップするなどして他の動画のURLを知ることがてきず、「URLを知っている人のみ公開」のような機能を実現しやすい

最初の二つはデメリットと受け取る人もいるかもしれません。  
最後の一つも、限定公開用のURLを生成する機能を別途開発すればいいだけなので数値を使うとできないわけではないですが、識別子が文字列だとより簡単です。


CC BY-SA 4.0
2021-01-22T10:28:55.073
73498
2021-01-22T10:28:55.073
43354
73492
answer