/v=xxx
YouTubeの見た目と動作に似たURLを作成しようとしています。つまり、ユーザーはファイルをアップロードし、そのURLを介してファイルにアクセスできるようになります。このURLコードは、ページが必要なデータを収集できるように、データベースの主キーの形式である必要があります。私はデータベースに不慣れであり、これは何よりもデータベースの問題です。
私のデータベースには、ファイルデータにアクセスするための自動インクリメント主キーがあります。その番号を使用してファイルのURLを作成したいと思います。さまざまなハッシュ関数を調べ始めましたが、衝突が心配です。2つの異なるファイルに同じURLは必要ありません。
uniqid()
また、主キーとして使用することを検討しCHAR(13)
、それを直接使用します。でもこれで効率が気になります。また、周りを見回すとあまり気付かないようですので、おかしな考えかもしれません。言うまでもなく、非効率になる可能性のあるIDが生成されたときに衝突をテストする必要があります。自動インクリメントははるかに簡単です。
これに対する良い解決策はありますか?私のアイデアのどちらかが機能しますか?自動インクリメントされた主キーから一意のURLを生成し、衝突を回避するにはどうすればよいですか?
私は2番目のアイデアに傾倒しています。これはあまり効率的ではありませんが、パフォーマンスの最大の欠点は、データベースに追加する必要がある場合(衝突のテスト)に発生します。これは、エンドユーザーにとっては1回だけです。他のパフォーマンスの欠点は、おそらくintではなくcharの実際の外観にあります。しかし、私は主にそれが悪い習慣であると心配しています。
編集:
簡単な解決策は、自動インクリメントされた値を直接使用することです。私をうるさいと呼んでください、しかしそれはちょっと醜いように見えます。