PDA

View Full Version : làm sao để với 1 id của bảng này mình dùng cho 2 id của bảng khác.



minhnhut_1st
23-10-2011, 23:35
Chào các bạn, mình có vấn đề này đang cần các bạn gợi ý giúp.
Mình có 1 bảng phân quyền với các quyền riêng biệt dành cho 3 cấp độ account. Ví dụ level 1 chỉ có quyền post bài, level 2 thì chỉ có quyền quản lý bài viết của level 1. còn level 3 thì chỉ có quyền quản lý hệ thống website. Theo các bạn thì làm như thế được không hay là level cao nhất phải có luôn quyền của level thấp hơn. Nhưng nếu có luôn quyền thấp hơn thì trong csdl, bảng phân quyền phải viết làm sao. Chẳng hạn với bảng này:
quyen(id, name, detail, level)
Vậy thì ứng với 1 quyền mình chỉ viết vào được 1 level trong field level thôi, đâu thể viết được 2 level vào 1 field. Vậy làm sao cho 1 quyền mà áp dụng cho 2 level. không lẽ giờ một quyền mà mình tạo ra 2, 3 cái id cho quyền đó và mỗi cái id thì dùng cho 1 level. Cảm ơn các bạn.

megaownage
25-10-2011, 15:44
Có hai cách:

1: dùng bitmap integer; quyền 1 = 1, quyền 2 = 2, quyền 3 = 4, vv (lũy thứa của 2); level nào có quyền 5 có nghĩa là có quyền 1 và 4.

2: dùng bảng nối (intermediate table). Nối 1-N hoặc N-N tùy thích.

bongbingo
29-10-2011, 22:58
Có hai cách:

1: dùng bitmap integer; quyền 1 = 1, quyền 2 = 2, quyền 3 = 4, vv (lũy thứa của 2); level nào có quyền 5 có nghĩa là có quyền 1 và 4.

2: dùng bảng nối (intermediate table). Nối 1-N hoặc N-N tùy thích.

chuẩn nhỉ :). mình cũng đang dùng như thế