2009-01-24 29 views
6

Khi lưu dữ liệu trong các bảng sql khác nhau, tốt nhất bạn nên sử dụng ID người dùng GUID hoặc chỉ cần sử dụng tên người dùng? có một sự khác biệt hiệu suất khi sử dụng guid?UserName hoặc guid UserID?

Trả lời

11

Sử dụng guid. Đây là số nhận dạng nội bộ của hệ thống cho người dùng của bạn. Điều này sau đó cho phép khả năng thay đổi tên người dùng nếu mọi người muốn.

Điều này sau đó phù hợp với khái niệm về ID nội bộ có nghĩa là một cái gì đó đối với hệ thống của bạn, so với ID bên ngoài có ý nghĩa gì đó đối với người dùng của bạn.

+0

Không chỉ vậy, nhưng tên người dùng có thể được thay đổi và/hoặc trùng lặp IRL. – Josef

+0

Nó chắc chắn có vẻ đúng, nhưng tại sao nó không thể truy cập được ... User.Identity.? Tôi đang cố gắng hiểu tại sao nó được thực hiện theo cách của nó. – Brettski

5

Tôi đã thấy nhiều cuộc thảo luận về hiệu suất trong GUID so với INT (tăng tự động). Nhưng tôi có thể khuyên bạn nên sử dụng GUID.

Hm .. Bạn đang hỏi về trường được sử dụng làm chính hoặc về sử dụng/không phải là quan hệ (chèn GUID vào bảng có bảng khác với GUID và liên kết tên người dùng)?

+0

chính trong bảng Người dùng dưới dạng guid. trường tham chiếu trong các bảng khác (dưới dạng guid hoặc không) – zsharp

+2

GUID vs Int liên quan nhiều hơn đến chỉ mục nhóm của SQL Server. Giá trị gia tăng đơn điệu (số nguyên nhận dạng) được ưu tiên cho chỉ mục Clustered, bất kể khóa chính. – Josef

+0

@Josef: Bây giờ tôi hiểu tại sao bạn hoàn toàn đúng :) – abatishchev