我的页面数为X,我希望为每页的用户设置权限。
最初我在考虑使用bitmask。但是我已经意识到,如果页面数超过一定数量(只能在MySQL unsigned BIGINT
列中存储64页),那么我的位掩码的十进制等效值可能会变得太大。
例如第64页的十进制等效值为18,446,744,073,709,551,615
,这只是让它查看一页。
那么,您将如何在每页,每用户的基础上为大量页面设置查看权限?
最佳答案
为什么不将它们作为多对多关系存储在数据库中?
喜欢
user_id | page_id
1 | 1
1 | 2
2 | 1
2 | 3
然后,您可以通过
SELECT * from users_pages WHERE user_id =?
获取用户可以看到的页面,或者可以通过执行SELECT * from users_pages WHERE page_id = ? and user_id = ?
确定是否允许用户查看特定页面。