2009-12-21 6 views
8

Tôi đang sử dụng thành viên ASP.Net để bảo mật trang web của mình và tôi có câu hỏi về cách lưu trữ thông tin người dùng bổ sung. Bởi googling và đọc các câu hỏi khác tôi nghĩ là 3 phương pháp được chấp nhận để lưu trữ dữ liệu bổ sungKhi sử dụng thành viên ASP.Net cộng với một bảng bổ sung để lưu trữ thông tin người dùng, tôi có nên liên kết các bảng khác với aspnet_Users hoặc Bảng của riêng tôi không?

  1. Sơ khuôn khổ - thường được coi là quá hạn chế
  2. Tuỳ chỉnh hồ sơ nhà cung cấp - lớn hơn một chút so với tôi muốn thử vào lúc này
  3. sử dụng một bảng thông tin người dùng - lựa chọn tôi đang theo

tôi đã tạo ra một bảng mới ngoài các ASP.Net bảng thành viên tên User_Information mà có một one-to-one chính nước ngoài để aspnet_Users . Khi tôi tạo một bảng mới để lưu trữ thông tin được liên kết với người dùng (ví dụ: nhận xét, phiếu bầu, v.v), tôi có nên đặt khóa ngoại để trỏ tới aspnet_User hoặc bảng User_information của tôi không?

cảm ơn

Trả lời

2

Tùy thuộc vào bản chất của truy vấn của bạn.

Nhà cung cấp tư cách thành viên sẽ cho phép bạn truy cập dễ dàng vào cột ID người dùng từ bảng aspnet_Users. Nó sẽ có thêm một truy vấn để lấy ID từ bảng của bạn.

Tuy nhiên, nếu hầu hết các truy vấn của bạn yêu cầu tham gia bảng User_Information của bạn, thì điều đó có thể không thực sự quan trọng.

0

Tôi chọn bảng aspnet_User. Đó là, sau khi tất cả, được coi là bảng "chính" cho thông tin người dùng, không?

2

Tôi sử dụng cùng một cách như bạn đã làm. Tôi có một tham chiếu yếu mà không có bất kỳ mối quan hệ vật lý nào giữa hai bảng đó. Nó hoạt động hoàn toàn tốt cho tôi. Để quản lý các phụ thuộc, bạn có thể quấn các hoạt động cơ sở dữ liệu trong một giao dịch cho cả hai bảng.

Tôi khuyên bạn không nên tạo bất kỳ khóa ngoại nào và tiếp tục với thiết kế này.