2017-06-22 98 views
0

我的問題受保護的數據是如何保護數據,並創建一個智能架構以下目的。 我有一個LibraryBS類(有很多這樣的類型的類)從數據庫中獲取數據。 LibraryBS類具有GETALL()和GetById(int libraryId)函數。 GETALL獲取所有庫,而GetById只從數據庫中獲取一個庫,這是Id = libraryId。這是一個使用這些類的Web應用程序。 現在我想添加公司保護。這意味着當用戶登錄系統並使用LibraryBs.GetAll()時,用戶只能看到屬於用戶公司的數據。 當這種類型的用戶進入系統時,也有特定的用戶(我們稱之爲超級用戶),他們可以看到所有數據。在獲取數據

你推薦什麼類型的模式?

謝謝!

回答

0

考慮圖書館的桌子上,它應該包含列companyId並具有companyId爲外鍵的另一個表用戶。 也許你可以在用戶表中添加一列'Access'。

會有查找表與where子句動態地根據該用戶訪問數據

Id AccessLevel 
0 Undefined 
1 User 
2 Company 


User Table 
Id Name Access CompanyId 
1 Bob 1  1 
1 Jon 2  2 

所以,當你獲取數據說用戶鮑勃,你可以創建「訪問」列。

0

你需要存儲用戶提供了參考鍵或外鍵到公司表,用於存儲公司的詳細信息,並存儲與這兩個使用和公司代表列外鍵引用用戶訪問級別的訪問級別表用戶表每個公司的每個用戶的訪問級別。您還需要在庫表中將參考添加到公司。

有了這個地方,你需要做的LibraryBS.GetAll方法取用戶對象作爲參數。

有了這個地方你的GETALL方法可以計算出正確的庫即可根據傳入的用戶。

希望這有助於。