Bắt đầu một vài dự án bắt đầu với EF, nhưng tôi có một số câu hỏi về bảng tham gia và khóa, v.v. Hãy nói rằng tôi có một bảng ứng dụng và bảng quyền. Các ứng dụng có nhiều quyền và mỗi quyền có thể thuộc về nhiều ứng dụng (nhiều-nhiều).
Bây giờ, các bảng Ứng dụng và Quyền rất dễ dàng:
Applications
--------------
PK ApplicationID
Name
Permissions
--------------
PK PermissionID
Name
Nhưng cách tốt nhất để làm bảng tham gia là gì? Tôi có hai lựa chọn sau:
ApplicationPermissions
-----------------------
PK ApplicationPermissionID
CU ApplicationID
CU PermissionID
HOẶC LÀ
ApplicationPermissions
-----------------------
CPK ApplicationID
CPK PermissionID
PK = Primary Key
CPK = Composite Primary Key
CU = Composite Unique Index
Bạn đã bao giờ bị đốt cháy làm cách này hơn cách khác? Là nó ưu tiên nghiêm ngặt? Tôi nhận ra rằng rất nhiều "sự khác biệt" sẽ bị trừu tượng hóa bởi mẫu kho lưu trữ của tôi (ví dụ, tôi gần như sẽ không bao giờ tạo toàn bộ đối tượng cấp phép và thêm nó vào một ứng dụng, nhưng thực hiện bằng ID hoặc tên duy nhất hoặc một cái gì đó), nhưng tôi đoán tôi đang tìm kiếm những câu chuyện kinh dị, bằng cách này hay cách khác.