Thực tế của vấn đề là nếu bạn muốn quyền cấp bài viết cho mỗi người dùng thì bạn cần một cách để liên quan đến User
s đến Article
s họ có thể truy cập. Điều này yêu cầu một tối thiểu bạn cần N * A (trong đó A là số lượng bài báo được cấp phép duy nhất).
Cách tiếp cận 3NF cho điều này, như bạn đã đề xuất, sẽ có UsersArticles
đặt ... đó sẽ là một bảng rất lớn (như bạn đã lưu ý).
Hãy xem xét rằng bảng này sẽ được truy cập rất nhiều ... Điều này đối với tôi có vẻ như là một trong những tình huống mà cách tiếp cận không chuẩn hóa một chút (hoặc thậm chí là noSQL) là thích hợp hơn.
Hãy xem xét mô hình mà Twitter sử dụng cho bảng người theo dõi người dùng của họ:
Và Blog về khả năng mở rộng cao
Một ví dụ từ những phần đó là một bài học kinh nghiệm tại Twitter rằng việc truy vấn những người theo dõi từ một bảng chuẩn hóa gây căng thẳng lớn cho User
bàn. Giải pháp của họ là không chuẩn hóa những người theo dõi để những người theo dõi của người dùng được lưu trữ trên cài đặt người dùng cá nhân của họ.
Tôi tưởng tượng một cách tiếp cận tương tự có thể được sử dụng để cung cấp quyền đối với bài viết và tránh UsersArticles
cực kỳ căng thẳng bảng đơn.