Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tạo TinyURL của riêng bạn

Các url nhỏ mọi người thích sử dụng các mã thông báo ngẫu nhiên vì sau đó bạn không thể chỉ troll các liên kết url nhỏ. "# 2 đi đâu?" "Ồ tuyệt!" "# 3 đi đâu?" "Còn ngầu hơn nữa!" Bạn có thể nhập các ký tự ngẫu nhiên nhưng không chắc bạn sẽ đạt được giá trị hợp lệ.

Vì khóa khá thưa thớt (4 giá trị, mỗi giá trị có 36 * khả năng cung cấp cho bạn 1.679.616 giá trị duy nhất, 5 mang lại cho bạn 60.466.176) khả năng va chạm là nhỏ (thực sự, đó là một phần mong muốn của thiết kế) và một chỉ mục SQL tốt sẽ làm cho tra cứu là không đáng kể (thực sự, đó là tra cứu chính cho url để họ tối ưu hóa xung quanh nó).

Nếu bạn thực sự muốn tránh việc tra cứu và chỉ cần bỏ tự động tăng, bạn có thể tạo một hàm biến một số nguyên thành một chuỗi các ký tự dường như ngẫu nhiên với khả năng chuyển đổi ngược lại. Vì vậy, "1" trở thành "54jcdn" và "2" trở thành "pqmw21". Tương tự như mã hóa Base64, nhưng không sử dụng các ký tự liên tiếp.

(*) Tôi thực sự thích sử dụng ít hơn 36 ký tự - một chữ cái, không có nguyên âm và không có ký tự tương tự (1, l, I). Điều này ngăn chặn những lời chửi thề vô tình và cũng giúp ai đó nói giá trị của mình với người khác dễ dàng hơn. Tôi thậm chí còn lập bản đồ các đặc điểm tương tự với nhau, chấp nhận "0" cho "O". Nếu bạn hoàn toàn dựa trên máy, bạn có thể sử dụng chữ hoa, chữ thường và tất cả các chữ số để có nhiều khả năng hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm nạp dữ liệu từ Mysql DB sang listView bằng JSON và PHP

  2. Không thể kết nối với máy chủ MySQL cục bộ thông qua socket

  3. MySQL sắp xếp các cột bảng hiện có

  4. Làm thế nào để thiết lập Hibernate để đọc / ghi vào các nguồn dữ liệu khác nhau?

  5. Thiết kế cơ sở dữ liệu:Khóa tổng hợp so với khóa chính một cột