Chúng tôi có một cơ sở dữ liệu về tài nguyên, có thể là sản phẩm, bài đăng trên blog hoặc một cái gì đó. Chúng tôi cần thiết kế một lược đồ URL để giải quyết chúng, cho trang web công cộng.
Dưới đây là hai ví dụ bị ràng buộc ID cơ sở dữ liệu:
Đây là một ví dụ thân thiện:
(Một thoáng nhìn về cuộc sống duyệt web của tôi ở đó)
Tôi thích các URL thân thiện vì bạn có ý tưởng về những gì ở cuối URL khi bạn di chuột hoặc nhìn thấy nó trong email hoặc tài liệu. Nó tốt hơn cho SEO, hoặc nó đã từng.
Điều gì xảy ra khi tài liệu hoặc sản phẩm được đổi tên? Hoặc vì nó đã thay đổi (Wiki có thể không thay đổi nhưng tài nguyên của chúng tôi có thể) hoặc do lỗi đánh máy, phải không? Tài nguyên của chúng tôi rất kỹ thuật, từ dài và dễ bị lỗi.
Ngoài ra, chúng tôi có một ID cơ sở dữ liệu, đó là một số. Hãy xem xét một ý tưởng cho một địa chỉ của video bằng cách sử dụng cửa hàng cho thuê giả vờ:
ID rõ ràng và được sử dụng trong tra cứu DB. Khỏe.
Bit cửa trượt không phải là duy nhất và chỉ được tạo từ tiêu đề video, nó có thể được xác minh trên GET, vì vậy nếu cửa trượt được nhập và không khớp với những gì thực sự trong tài liệu 287171, nó đáp ứng 404.
Hoặc có lẽ nó có thể bị bỏ qua, cho phép con người dính bất cứ thứ gì họ thích vào đó, nếu có ai đó quan tâm. Vì vậy, URL này cũng sẽ hoạt động:
Vấn đề với việc xác minh phần thân thiện là, như đã đề cập, vấn đề đổi tên hoặc sửa lỗi chính tả. Nếu tên đã thay đổi và trong miền của chúng tôi điều đó xảy ra, chúng tôi không muốn phá vỡ các URL ở ngoài đó, vì vậy chúng tôi nên:
Chỉ cần không xác minh phần thân thiện.
Xác minh, nhưng thêm 'lịch sử' các phần thân thiện vào bản ghi cơ sở dữ liệu để mọi ID thân thiện trước đó vẫn hoạt động!
Suy nghĩ và ý tưởng của bạn đều được chào đón.
Luke
http://programmers.stackexchange.com/questions/255684/providing-friendly-urls-for-a-website-vs-realities-of-database-ids
(sử dụng phiên bản chưa được xác minh để thay đổi tiêu đề, liên kết "chia sẻ" ngắn hơn chỉ là id:http://programmers.stackexchange.com/q/255684/25768
(và id người dùng để theo dõi huy hiệu)