我需要生成像tinyurl的唯一的URL:domain.com/pgDzs7,domain.com/ab4dh3 但(!)問題是,我不希望用戶只需更改網址中的最後一個字母即可查看上一個和下一個網址。生成一個獨特的類似tinyurl的ID,但隨機(不是mysql的行id到base64)
例如,如果有人創建了一個獲得URL domain.com/pgDzs7的內容,我希望下一位訪問者獲得完全不同的唯一URL(例如,「ab4dh3」),以便沒有人無法找到這些URL已經生成並查看其他用戶的內容,除非他們知道其URL。
我在Stackoverflow上找到的所有內容都是將表的主整數鍵轉換爲base64格式。但我需要不同的解決方案,這也不會產生衝突,並且不會產生週期(如果可能的話),因爲我的MySQL表有幾十GB字節。
我不認爲有辦法做到這一點,保證不會產生衝突。只要碰撞很少,你的'while'週期應該迭代1到2次,這應該不會太糟糕。只要您的數據庫中的值有索引,檢查代碼是否已被使用應該很快。 – Barmar