Tôi nhận thấy câu hỏi này rất có thể đã được hỏi trước đây, nhưng tôi đã tìm kiếm xung quanh một chút trong số các câu hỏi về StackOverflow và tôi không thực sự tìm thấy câu trả lời cho tôi, vì vậy, ở đây. Nếu bạn tìm thấy một bản sao, xin vui lòng liên kết với nó.Loại dữ liệu nào được đề xuất cho cột ID?
Vì lý do nào đó, tôi thích sử dụng Guid
s (uniqueidentifier
trong MsSql) cho các trường khóa chính của mình, nhưng tôi thực sự không biết tại sao điều này sẽ tốt hơn. Trong nhiều hướng dẫn tôi đã tự mình trải qua gần đây một số tự động tăng lên int
đã được sử dụng. Tôi có thể thấy pro và khuyết điểm với cả hai:
- Một
Guid
luôn là kích thước và chiều dài giống nhau, và không có lý do để lo lắng về việc hết họ, trong khi có một giới hạn bao nhiêu hồ sơ bạn có thể có trước khi bạn hết số điện thoại phù hợp với sốint
. int
là (ít nhất là trong C#) một loại có thể vô hiệu hóa, mở ra cho một vài phím tắt khi truy vấn dữ liệu.- Và
int
dễ đọc hơn. - Tôi đặt cược bạn có thể đưa ra ít nhất một vài thứ ở đây.
Vì vậy, đơn giản như tiêu đề cho biết: Loại dữ liệu được đề xuất cho cột ID (khóa chính) trong cơ sở dữ liệu là gì?
EDIT: Sau khi nhận được một vài câu trả lời ngắn, tôi cũng phải thêm câu hỏi tiếp theo này. Nếu không có câu trả lời đó, câu trả lời của bạn không hấp dẫn và không giáo dục ...;) Tại sao bạn nghĩ vậy và điểm yếu của tùy chọn khác khiến bạn không phải là nên chọn thay thế?
cần được chỉ ra rằng GUID và số nguyên chỉ là các cách hiển thị và tạo chuỗi byte khác nhau. Trường hợp int được tạo tuần tự, GUID được tạo "ngẫu nhiên" và có nhiều byte hơn trong đó. điều đó có nghĩa là bạn không cần phải xem trạng thái hiện tại của cơ sở dữ liệu để tạo một cơ sở dữ liệu. mọi thứ có thể được vô hiệu hóa trong C# bằng một? trên đó. –