我在建立一個好的數據庫設計時遇到了問題。 第一條具有權限組1,2,3數據庫設計最佳性能
用戶在權限組2和4
所以這個用戶本身應該第1條,但我可以設計一個SQL不要在這種情況下,使用OR。
如果有數以百萬計的文章,那麼wouldent會對OR有好處。
TABEL文章 條款ArticleID 名稱
表權限 標識 條款ArticleID PermissionGroup
表userpermission 標識 用戶ID Permissiongroup
這樣的事情。
我在建立一個好的數據庫設計時遇到了問題。 第一條具有權限組1,2,3數據庫設計最佳性能
用戶在權限組2和4
所以這個用戶本身應該第1條,但我可以設計一個SQL不要在這種情況下,使用OR。
如果有數以百萬計的文章,那麼wouldent會對OR有好處。
TABEL文章 條款ArticleID 名稱
表權限 標識 條款ArticleID PermissionGroup
表userpermission 標識 用戶ID Permissiongroup
這樣的事情。
這是很難準確的告訴你正在嘗試與您所提供的有限的細節做的,但你應該能夠JOIN
表得到一個用戶是否能訪問文章:
select u.username,
p.articleId
from users u
inner join userpermission up
on u.userid = up.userid
inner join permissions p
on up.permissiongroup = p.permissiongroup
inner join articles a
on p.articleid = a.articleid
使用JOIN,您將根據權限返回用戶和他們可以訪問的文章。
當一篇文章中有數百萬篇文章和數百個權限組時,這是一個快速運行的sql。 – user1199595 2013-02-10 19:36:44
@ user1199595如果你有適當的索引,那麼你應該沒問題。 – Taryn 2013-02-10 19:38:03
你可以發佈你的表結構嗎? – Taryn 2013-02-10 18:38:46
對不起,我現在已經完成了。我可以改變表格結構,我只是想要做到這一點的最佳方式。 – user1199595 2013-02-10 18:57:55
有沒有我應該添加的任何摩爾信息? – user1199595 2013-02-10 19:09:30