Nội dung bài viết
Video học lập trình mỗi ngày
UUID là gì? Hẳn là mỗi developer cũng đã nghe về UUID rồi, nói sơ qua thì UUID là viết tắt của Universally Unique IDentifier, có thể hiểu đó là một định danh duy nhất và không có cái thứ hai. Hay nói cách khác đó là một id duy nhất trong global. Đây cũng là một bài viết trong Series - Mẹo viết javascript, ở đó có nhiều tips hữu ích có thể bạn sẽ cần.
UUID là gì?
Theo kiablog.com - UUID là viết tắt của Universally Unique IDentifier, hiểu nôm na là một định danh duy nhất trong toàn thể vũ trụ (universal cơ mà) =)). Mục đích của UUID sinh ra là bởi vì:
- Dữ liệu lớn, kiểu khóa chính auto imcrement cần nhiều byte để lưu hơn. Và khóa chính kiểu này không phù hợp khi mà hệ thống có nhiều server, nhiều client cùng lúc truy cập trên toàn thế giới.
- Nếu dùng khóa chính kiểu auto imcrement, có thể dễ dàng truy ra được trong database có bao nhiêu record. Thường thấy ở đường dẫn kiểu "domain.com/user/12345".
Bởi vậy UUID ra đời nhằm khắc phục những yếu điểm trên. Vậy nếu bạn đủ sức xây dựng một hệ thống với nhiều server, phục vụ hàng tỉ tỉ user hoặc chỉ đơn giản là không muốn để lộ id ra ngoài, hãy nghĩ tới UUID. Với mục đích của bài đăng này, tôi sẽ sử dụng javascript để tạo một UUID. Chứ không phải dành thời gian để phân tích về UUID.
Tạo UUID trong javascript
Gần đây tôi đã suy nghĩ rất nhiều về UUID. Hệ thống mà tôi được thừa hưởng tại nơi làm việc bị ảnh hưởng bởi việc sử dụng chúng. Đối với nhiều nhà phát triển, UUID dường như là một cách hoàn toàn tuyệt vời để thiết lập danh tính của một bản ghi trong một hệ thống. Ý tôi là, thật tuyệt vời khi bạn có thể tạo một ID duy nhất cho mọi hệ thống trên thế giới? Có nhiều thư viện đê thực hiện điều đó nhưng một vài ý tưởng tôi đã tìm được tren reddit và một kết quả làm tôi mỹ mãn, mặc dù vẫn có nhiều tranh cãi khác nhau về cách làm này.
// Author: Abhishek Dutta, 12 June 2020 // License: CC0 (https://creativecommons.org/choose/zero/) function uuid() { var temp_url = URL.createObjectURL(new Blob()); var uuid = temp_url.toString(); URL.revokeObjectURL(temp_url); return uuid.substr(uuid.lastIndexOf('/') + 1); // remove prefix (e.g. blob:null/, blob:www.test.com/, ...) }
# Cách sử dụng tạo uuid
for(var i=0; i<10; ++i) { console.log(uuid()); } f6ca05c0-fad5-46fc-a237-a8e930e7cb49 6a88664e-51e1-48c3-a85e-7bf00467e9e6 e6050f4c-e86d-4081-9376-099bfbef2c30 bde3da3c-b318-4498-8a03-9a773afa84bd ba0fda03-f806-4c2f-b6f5-1e74a299e603 62b2edc3-b09f-4bf9-8dbf-c4d599479a29 e70c0609-22ad-4493-abcc-0e3445291397 920255b2-1838-497d-bc33-56550842b378 45559c64-971c-4236-9cfc-706048b60e70 4bc4bbb9-1e90-432b-99e8-277b40af92cd
Link tham khảo tại abhishekdutta.com