2017-02-02 10 views
0

Stack Overflowに記載されているように、Bijective関数アルゴリズムを使用してURL短縮機能を構築しました。私のデータベーステーブルには2つのカラムがあります。 IDおよびURL。すべての入力URLに対して、IDが自動的にインクリメントされ、その値がbase62に変換されます。この値は、短縮リンクのスラッグを形成します。URL短縮用URLのカスタムURLの追加

例:ID42である場合、そのbase62形態は(アルファベットセットに応じて異なっていてもよい)gあります。短縮URLはhttps://example.com/gです。

これで、ユーザーがカスタムURLスラッグを選択するカスタムURLサポートを追加したいと思います。カスタムURLを格納するために別のテーブルを作成し、両方のテーブルで一致するスラッグを確認することができます。しかし、これはむしろ非効率なようです。

誰でも効率的なソリューションを提供できますか?

P.S.私はPHPとMySQLを使用しています。

答えて

0

あなたはそれが自然に生成された場合、それはちょうどこれを覚えておく、占有し、対応するIDにスラグの逆マッピングを行うことができます:あなたのID変数を増やす前にあなたは、エントリはそれが増加するであろうことを確認することができます

そのIDに対応するスラッグを入力した人がまだ入力していない場合は、新しい一意の値を見つけるまでID列を増分し続けます。