python - 個(gè)人博客數(shù)據(jù)庫設(shè)計(jì)的問題
問題描述
我需要設(shè)計(jì)一個(gè)個(gè)人博客,數(shù)據(jù)庫設(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ù)庫設(shè)計(jì)。請(qǐng)大家推薦一下資料。因?yàn)槲铱吹胶芏鄶?shù)據(jù)庫操作的資料,但是數(shù)據(jù)庫如何設(shè)計(jì)的呢
問題解答
回答1:用戶、角色、功能、三張表分開就好了
用戶對(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ù)庫里會(huì)因?yàn)槠胀ㄓ脩舨恍枰猵assword而管理員需要password,而管理員只有你一個(gè)~~我個(gè)人想到的方式就是數(shù)據(jù)庫存儲(chǔ)和設(shè)計(jì)按照一樓“l(fā)iujijans”的方式,不過可以在庫里不用加上password,然后admin的這個(gè)password可以設(shè)置為動(dòng)態(tài)的,比如一個(gè)你預(yù)先設(shè)置的前綴+當(dāng)天日期,這樣的密碼安全度還是有的,然后也比較好記,不需要在代碼里刻意的設(shè)置。關(guān)于權(quán)限系統(tǒng)、用戶中心還有實(shí)際的業(yè)務(wù)可以分開來設(shè)計(jì),解耦之后不但靈活,而且業(yè)務(wù)模塊化比較有架構(gòu)性,哈哈,裝逼范兒十足。
相關(guān)文章:
1. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????2. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)3. html按鍵開關(guān)如何提交我想需要的值到數(shù)據(jù)庫4. mysql取模分表與分表5. gvim - 誰有vim里CSS的Indent文件, 能縮進(jìn)@media里面的6. HTML 5輸入框只能輸入漢字、字母、數(shù)字、標(biāo)點(diǎn)符號(hào)?正則如何寫?7. 跟著課件一模一樣的操作使用tp6,出現(xiàn)了錯(cuò)誤8. PHP類屬性聲明?9. objective-c - ios 怎么實(shí)現(xiàn)微信聯(lián)系列表 最好是swift10. java - 安卓接入微信登錄,onCreate不會(huì)執(zhí)行
