UUID là gì? Cách tạo UUID với javascript chỉ với 6 dòng code

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

Có thể bạn đã bị missing