数据库结构是这样的:每个用户都创建了他们的列表,并具有访问权限分配:
例如
table: user
attribute: UserID
table: list
attribute: ListID
table: user_list
attribute: ListID,UserID, Rights
有两种权利:阅读,编辑
一切正常,直到我公开一个权利电话(每个人都可以编辑) 因此,如果我有100个成员,10个列表,我必须创建1000个userID - 权限:编辑行
规模令人难以置信地增加。
如何解决这个问题:
1)创建一个名为public的单独表,并将ListID放入其中?
2)将行存储为ListID,将UserID存储为空,并将权限存储为“公共”?
哪种方法更好?谢谢。
答案 0 :(得分:1)
我不确定我对你的情况完全清楚,但是......
如果您想有效地公开列表,为什么不在列表中创建IsPublic
字段。检查列表是否公开时。如果列表是IsPublic,则不需要检查用户特定权限。
如果您担心user_list表中的行太多,可以使用以下字段进行设置:
UserID
,ListID
,CanEdit
,CanRead
如果用户权限的数量不可能继续增长,我只会这样做。而且我不确定性能会有什么不同。