2013-02-10 55 views
-2

我在建立一個好的數據庫設計時遇到了問題。 第一條具有權限組1,2,3數據庫設計最佳性能

用戶在權限組2和4

所以這個用戶本身應該第1條,但我可以設計一個SQL不要在這種情況下,使用OR。

如果有數以百萬計的文章,那麼wouldent會對OR有好處。

TABEL文章 條款ArticleID 名稱

表權限 標識 條款ArticleID PermissionGroup

表userpermission 標識 用戶ID Permissiongroup

這樣的事情。

+0

你可以發佈你的表結構嗎? – Taryn 2013-02-10 18:38:46

+0

對不起,我現在已經完成了。我可以改變表格結構,我只是想要做到這一點的最佳方式。 – user1199595 2013-02-10 18:57:55

+0

有沒有我應該添加的任何摩爾信息? – user1199595 2013-02-10 19:09:30

回答

1

這是很難準確的告訴你正在嘗試與您所提供的有限的細節做的,但你應該能夠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,您將根據權限返回用戶和他們可以訪問的文章。

+0

當一篇文章中有數百萬篇文章和數百個權限組時,這是一個快速運行的sql。 – user1199595 2013-02-10 19:36:44

+0

@ user1199595如果你有適當的索引,那麼你應該沒問題。 – Taryn 2013-02-10 19:38:03