python - 個(gè)人博客數(shù)據(jù)庫(kù)設(shè)計(jì)的問(wèn)題
問(wèn)題描述
我需要設(shè)計(jì)一個(gè)個(gè)人博客,數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)遇到困難了。我要實(shí)現(xiàn)的功能是:普通用戶只能評(píng)論博客。管理員(就是我)可以登錄,發(fā)布博客,回復(fù)評(píng)論。
原本設(shè)計(jì)的是表有 User, Admin,Post, Comment。但是User和Comment是一對(duì)多,Admin和Comment也是一對(duì)多。這樣就亂掉了。
所以想把User表和Admin表合并成一個(gè)表,就叫User,但是管理員是需要有密碼字段的,而普通用戶不需要,管理員只有一個(gè),普通用戶有很多,這樣設(shè)計(jì)就浪費(fèi)了一個(gè)字段。
請(qǐng)大家給我點(diǎn)建議吧,應(yīng)該如何設(shè)計(jì)User和Admin表。另外,我想學(xué)習(xí)一下數(shù)據(jù)庫(kù)設(shè)計(jì)。請(qǐng)大家推薦一下資料。因?yàn)槲铱吹胶芏鄶?shù)據(jù)庫(kù)操作的資料,但是數(shù)據(jù)庫(kù)如何設(shè)計(jì)的呢
問(wèn)題解答
回答1:用戶、角色、功能、三張表分開(kāi)就好了
用戶對(duì)應(yīng)角色、角色對(duì)應(yīng)功能、
角色現(xiàn)在就是普通用戶和管理員、那查的時(shí)候根據(jù)角色關(guān)聯(lián)一下就知道需不需要判斷密碼了
不同的功能也根據(jù)角色分配、在關(guān)聯(lián)表里面加
回答2:只是個(gè)人博客而已,User只需要記錄自己的登錄信息就好,普通用戶既然只能評(píng)論,那就不需要有登錄的功能,普通用戶的用戶名或者郵箱就記錄在comment里面就好啦,post跟comment是一對(duì)多的關(guān)系,就不需要涉及到跟用戶的關(guān)系啦
回答3:看你的描述,你糾結(jié)的一點(diǎn)是數(shù)據(jù)庫(kù)里會(huì)因?yàn)槠胀ㄓ脩舨恍枰猵assword而管理員需要password,而管理員只有你一個(gè)~~我個(gè)人想到的方式就是數(shù)據(jù)庫(kù)存儲(chǔ)和設(shè)計(jì)按照一樓“l(fā)iujijans”的方式,不過(guò)可以在庫(kù)里不用加上password,然后admin的這個(gè)password可以設(shè)置為動(dòng)態(tài)的,比如一個(gè)你預(yù)先設(shè)置的前綴+當(dāng)天日期,這樣的密碼安全度還是有的,然后也比較好記,不需要在代碼里刻意的設(shè)置。關(guān)于權(quán)限系統(tǒng)、用戶中心還有實(shí)際的業(yè)務(wù)可以分開(kāi)來(lái)設(shè)計(jì),解耦之后不但靈活,而且業(yè)務(wù)模塊化比較有架構(gòu)性,哈哈,裝逼范兒十足。
相關(guān)文章:
1. boot2docker無(wú)法啟動(dòng)2. docker-compose中volumes的問(wèn)題3. docker容器呢SSH為什么連不通呢?4. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””5. java - SSH框架中寫(xiě)分頁(yè)時(shí)service層中不能注入分頁(yè)類(lèi)6. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.7. node.js - antdesign怎么集合react-redux對(duì)input控件進(jìn)行初始化賦值8. 關(guān)于docker下的nginx壓力測(cè)試9. nignx - docker內(nèi)nginx 80端口被占用10. 老師,按tab鍵不起作用怎么回事

網(wǎng)公網(wǎng)安備