Tôi đang làm việc trên trang web cho phép mọi người tạo tiểu sử trực tuyến. Tôi đã tự hỏi nếu nó là sự lựa chọn đúng để sử dụng MySQL ID AUTO_INCREMENT
ed như id người dùng của tôi. Cũng nhớ rằng tôi có thể phải sao chép cơ sở dữ liệu trên nhiều máy chủ một ngày?Liệu mysql có tự động tăng an toàn để sử dụng như userID?
ví dụ: bạn sẽ sử dụng phương pháp này cho userIds trên một trang web như Twitter hay Facebook?
Tôi đã thử tạo userIds bằng PHP trước đây. Tôi đã sử dụng một cái gì đó như thế này:
function generateID() {
$possible = "1234567890";
$code = "";
$characters = mt_rand(7,14);
$i = 0;
while ($i < $characters) {
$code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
$i++;
}
return $code;
}
Điều này đã cung cấp loại giá trị tôi cần, nhưng tôi luôn phải kiểm tra từ DB nếu ID đó chưa tồn tại.
Không có cách tiếp cận tốt hơn?
Khóa chính phức hợp là giải pháp tốt hơn nhiều so với UUID() để hợp nhất dữ liệu. –
Có hai trường tư tưởng về vấn đề này - bạn hoặc sử dụng các khóa được tạo nhân tạo để nhận dạng duy nhất một ai đó, hoặc một khóa chính ghép - Joe Celko là người ủng hộ cách tiếp cận thứ hai chẳng hạn. – Andrew
Cảm ơn bạn. Tôi chưa bao giờ sử dụng UUID() trước đây. Theo những gì tôi thấy trên hầu hết các ví dụ trên internet, nó tạo ID dài, ví dụ: 1E8EF774581C102CBCFEF1AB81872213 Tôi có đúng không? Nếu vậy, có cách nào tôi có thể làm ngắn hơn không? Hoặc bất cứ ai có thể giới thiệu tôi đến một trang web giải thích chức năng này tốt hơn (tôi không nghĩ rằng tôi hiểu nó rất tốt)? Cảm ơn – Sthe