2009-07-14 39 views
8

Tôi đang làm việc trên một ứng dụng web sẽ là giải pháp đa người dùng được lưu trữ khi hoàn tất. Tôi đang cố gắng tìm ra cách tốt nhất để xử lý thiết kế cơ sở dữ liệu cho ứng dụng của mình. Cụ thể, tôi cần tìm ra cách xử lý nhiều tài khoản riêng biệt.Thiết kế cơ sở dữ liệu ứng dụng web đa người dùng

Cách tôi xem, có một số tùy chọn: 1) Có một bộ bảng cơ sở dữ liệu. Trong mỗi bảng, bao gồm một cột 'người dùng' hoặc một cái gì đó tương tự mà sẽ ánh xạ mỗi hàng vào tài khoản người dùng thích hợp. 2) Tạo cơ sở dữ liệu hoàn toàn riêng biệt cho từng người dùng. Điều này dường như không phải là một ý tưởng tuyệt vời cho lý do hiệu suất. 3) Tạo một lược đồ riêng cho từng người dùng trong một cơ sở dữ liệu. Mỗi lược đồ sẽ chứa các bảng cho mỗi người dùng.

Bạn xử lý vấn đề này như thế nào? Tôi có thiếu lựa chọn nào không? Tôi đang sử dụng PostgreSQL làm cơ sở dữ liệu của tôi nếu điều đó tạo ra bất kỳ sự khác biệt nào về cách bạn xử lý vấn đề này.

+0

có thể trùng lặp với [Việc gán cơ sở dữ liệu MySQL cho mỗi người dùng trên trang web của tôi có hợp lý không?] (Http://stackoverflow.com/q/327787/90527). – outis

Trả lời

6

Tôi hầu như luôn đi với tùy chọn # 1. Nếu bạn thiết kế nó đúng, bạn chỉ có thể cần cột 'người dùng' của bạn trong một vài bảng chính là điểm vào của bạn và sau đó mọi thứ khác có thể được nối với nhau trong các bảng khóa đó.

5

Theo nguyên tắc chung, bạn không bao giờ muốn có nhiều bảng (hoặc cơ sở dữ liệu) với cấu trúc giống nhau. Nếu bạn thấy mình đang xem xét việc tạo các bảng riêng biệt stuff_for_user_astuff_for_user_b (đó là tùy chọn của bạn # 2 và # 3), thì có thể bạn chỉ cần tạo một bảng stuff bao gồm cột user (ví dụ: tùy chọn của bạn # 1).

Các vấn đề liên quan