淺談數(shù)據(jù)庫設(shè)計(jì)技巧下

淺談數(shù)據(jù)庫設(shè)計(jì)技巧下

ID:46129932

大?。?7.58 KB

頁數(shù):9頁

時(shí)間:2019-11-21

淺談數(shù)據(jù)庫設(shè)計(jì)技巧下_第1頁
淺談數(shù)據(jù)庫設(shè)計(jì)技巧下_第2頁
淺談數(shù)據(jù)庫設(shè)計(jì)技巧下_第3頁
淺談數(shù)據(jù)庫設(shè)計(jì)技巧下_第4頁
淺談數(shù)據(jù)庫設(shè)計(jì)技巧下_第5頁
資源描述:

《淺談數(shù)據(jù)庫設(shè)計(jì)技巧下》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、三、多用戶及其權(quán)限管理的設(shè)計(jì)開發(fā)數(shù)據(jù)庫管理類的軟件,不可能不考慮多用戶和用戶權(quán)限設(shè)置的問題。盡管目前市面上的大.中型的后臺(tái)數(shù)據(jù)庫系統(tǒng)軟件都提供了多用戶,以及細(xì)至某個(gè)數(shù)據(jù)庫內(nèi)某張表的權(quán)限設(shè)置的功能,我個(gè)人建議:一套成熟的數(shù)據(jù)庫管理軟件,還是應(yīng)該自行設(shè)計(jì)用戶管理這塊功能,原因有二:1?那些大、中型后臺(tái)數(shù)據(jù)庫系統(tǒng)軟件所提供的多用戶及其權(quán)限設(shè)置都是針對(duì)數(shù)據(jù)庫的共有屬性,并不一定能完全滿足某些特例的需求;2?不要過多的依賴后臺(tái)數(shù)據(jù)庫系統(tǒng)軟件的某些特殊功能,多種大、中型后臺(tái)數(shù)據(jù)庫系統(tǒng)軟件之間并不完全兼容。否則一旦日后需要轉(zhuǎn)換數(shù)據(jù)庫平臺(tái)或后臺(tái)數(shù)據(jù)庫系

2、統(tǒng)軟件版本升級(jí),之前的架構(gòu)設(shè)計(jì)很可能無法重用。下面看看如何自行設(shè)計(jì)一套比較靈活的多用戶管理模塊,即該數(shù)據(jù)庫管理軟件的系統(tǒng)管理員可以自行添加新用戶,修改已有用戶的權(quán)限,刪除已有用戶。首先,分析用戶需求,列出該數(shù)據(jù)庫管理軟件所有需要實(shí)現(xiàn)的功能;然后,根據(jù)一定的聯(lián)系對(duì)這些功能進(jìn)行分類,即把某類用戶需使用的功能歸為一類;最后開始建表:功能表(Function_table)名稱類型約束條件說明f_idint無重復(fù)功能標(biāo)識(shí),主鍵f_namechar(20)不允許為空功能名稱,不允許重復(fù)f_descchar(50)允許為空功能描述用戶組表(User_

3、group)名稱類型約束條件說明group_idint無重復(fù)用戶組標(biāo)識(shí),group_namechar(20)不允許為空用戶組名稱group_powerchar(lOO)不允許為空用戶組權(quán)限表,內(nèi)容為功能表f_id的集合用戶表(User.table)名稱類型約束條件說明user_idint無重復(fù)用戶標(biāo)識(shí),主鍵user_namechar(20)無重復(fù)用戶名user_pwdchar(20)不允許為空用戶密碼user_typeint不允許為空所屬用戶組標(biāo)識(shí),和User_group.group_id關(guān)聯(lián)采用這種用戶組的架構(gòu)設(shè)計(jì),當(dāng)需要添加新用戶時(shí)

4、,只需指定新用戶所屬的用戶組;當(dāng)以后系統(tǒng)需要添加新功能或?qū)εf有功能權(quán)限進(jìn)行修改時(shí),只用操作功能表和用戶組表的記錄,原有用戶的功能即可相應(yīng)隨之變化。當(dāng)然,這種架構(gòu)設(shè)計(jì)把數(shù)據(jù)庫管理軟件的功能判定移到了前臺(tái),使得前臺(tái)開發(fā)相對(duì)復(fù)雜一些。但是,當(dāng)用戶數(shù)較大(10人以上),或日后軟件升級(jí)的概率較大時(shí),這個(gè)代價(jià)是值得的。四.簡潔的批量m:n設(shè)計(jì)碰到m:n的關(guān)系,一般都是建立3個(gè)表,m一個(gè),n—個(gè),m:n一個(gè)。但是,m:n有時(shí)會(huì)遇到批量處理的情況,例如到圖書館借書,一般都是允許用戶同時(shí)借閱n本書,如果要求按批查詢借閱記錄,即列出某個(gè)用戶某次借閱的所有書

5、籍,該如何設(shè)計(jì)呢?讓我們建好必須的3個(gè)表先:書籍表(Book_table)名稱類型約束條件說明book_idint無重復(fù)書籍標(biāo)識(shí),主鍵book_nochar(20)無重復(fù)書籍編號(hào)book_namechar(lOO)不允許為空書籍名稱借閱用戶表(Renter_table)名稱類型約束條件說明renter_idint無重復(fù)用戶標(biāo)識(shí),主renter_namechar(20)不允許為空用戶姓名借閱記錄表(RentJog)名稱類型約束條件說明rent_idint無重復(fù)借閱記錄標(biāo)識(shí),主鍵r_idint不允許為空用戶標(biāo)識(shí),和Renter_table.

6、renter_id關(guān)聯(lián)b」dint不允許為空書籍標(biāo)識(shí),和Book_table.book_id關(guān)聯(lián)rent_datedatetime不允許為空借閱時(shí)間為了實(shí)現(xiàn)按批查詢借閱記錄,我們可以再建一個(gè)表來保存批量借閱的信息,例如:批量借閱表(Batch_rent)名稱類型約束條件說明batch_idint無重復(fù)批量借閱標(biāo)識(shí),batch_noint不允許為空批量借閱編號(hào),同一批借閱的batch_no相同rent_idint不允許為空借閱記錄標(biāo)識(shí),和Rent_log.rent_id關(guān)聯(lián)batch_datedatetime不允許為空批量借閱時(shí)間這樣的設(shè)

7、計(jì)好嗎?我們來看看為了列出某個(gè)用戶某次借閱的所有書籍,需要如何查詢?首先檢索批量借閱表(Batch_rent),把符合條件的的所有記錄的rentjd字段的數(shù)據(jù)保存起來,再用這些數(shù)據(jù)作為查詢條件帶入到借閱記錄表(Rentjog)中去查詢。那么,有沒有什么辦法改進(jìn)呢?下面給出一種簡潔的批量設(shè)計(jì)方案,不需添加新表,只需修改一下借閱記錄表(Rentjog)即可。修改后的記錄表(Rentjog)如下:借閱記錄表(RentJog)名稱類型約束條件說明rent_idint無重復(fù)借閱記錄標(biāo)識(shí),jidint不允許為空用戶標(biāo)識(shí),和Renter_table.

8、renter_id關(guān)聯(lián)b_idint不允許為空書籍標(biāo)識(shí),和Book_table.book_id關(guān)聯(lián)batch_noint不允許為空批量借閱編號(hào),同一批借閱的batch_no相同rent_datedateti

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。