Trước hết, hãy nhìn vào địa chỉ của Github Gist. https. //ý chính. github. com/thangngoc89/db6493759aa0e9bdb59d mỗi Gist được gắn một chuỗi băm duy nhất (ví dụ db6493759aa0e9bdb59d). Không có 2 ý chính có cùng 1 mã băm
Tuy nhiên, chúng ta không hề có cấu trúc nào để lưu trữ hàm băm trong lược đồ (cấu trúc của cơ sở dữ liệu). Cách giải quyết vấn đề thường gặp nhất đó là tạo thêm 1 tên cột mới là hàm băm trong ý chính và tạo 1 hàm băm ngẫu nhiên mỗi khi có ý chính mới. Nhưng như vậy thì chúng ta có riêng 1 cột id Chỉ mục đích tự động tăng (auto-increment) mà không hề có bất kỳ chức năng nào khác trong bảng. Tại sao chúng ta không nhập chung cột hash và cột id thành một. Và đặt cột đó làm bảng chính của bảng?. nghe được đó
Một lợi ích khác của cách này đó là người khác không thể biết tổng số bản ghi có trong bảng của bạn. Một dạng địa chỉ thường thấy của blog home-growth (tự phát triển) có dạng http. //thí dụ. com/my-blog-slug-here/id. And id normal is auto-increment key (mà 99% là như vậy). Nếu bạn là một công ty kinh doanh, đối thủ của bạn có thể dễ dàng tìm ra tổng số bản ghi bằng cách tăng dần id lên khi có lỗi 404. . nụ cười
Nhiều bạn sẽ nói rằng hầu hết các blog đều không có phần id ở cuối tuy nhiên theo kinh nghiệm cá nhân, lộ trình như vậy là tối ưu nhất để tránh phức tạp về sau liên quan giữa sên và tiêu đề
Hay đơn giản là nhìn vào ứng dụng Gist của chúng ta. 1 Gist could have a public/private status. Nhưng nếu chúng ta sử dụng auto-increment id thì ý chính riêng của chúng ta sẽ dễ dàng tìm ra (giả sử chúng ta không kiểm tra tên người dùng)
#UUID
Long lines thế là đủ rồi. Bây giờ quay lại chủ đề chính. UUID là gì ? . Nếu các bạn quan tâm, các bạn có thể tìm hiểu về UUID chuẩn tại đây
Một chuỗi UUID cơ bản có định dạng như sau. 6ba7b810-9dad-11d1-80b4-00c04fd430c8 gồm 36 ký tự. 32 ký tự xưng [a-z0-9] và chia thành 4 nhóm bởi 4 dấu - (gạch nối). Vì 1 UUID khá dài nên chúng ta chỉ lấy 7 ký tự đầu tiên và hiển thị ra bên ngoài (còn lưu đầy đủ UUID trong cơ sở dữ liệu)
#di cư
Chúng ta đã biết cấu trúc của một ID UUID, hãy chỉnh sửa lại quá trình di chuyển để áp dụng UUID vào Gist
Lưu ý. Chúng ta còn đang trong giai đoạn cấm đầu, việc sửa đổi trực tiếp việc di chuyển tệp là chấp nhận được. Nếu như các bạn đang làm dự án đã được triển khai (và có dữ liệu thực tế). Vui lòng tạo thêm 1 tệp di chuyển mới và áp dụng các thay đổi đã sửa đổi trong tệp này
Việc sửa đổi di chuyển tệp rất đơn giản, những nơi có kiểu dữ liệu là INT(10) mình sẽ chuyển thành VARCHAR(36). Ở đây mình đã sửa đổi sẵn các file migration, các bạn có thể tham khảo thêm