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. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實(shí)現(xiàn)存在即更新應(yīng)該使用哪個(gè)標(biāo)簽?2. mysql - 數(shù)據(jù)庫建字段,默認(rèn)值空和empty string有什么區(qū)別 1103. mysql - 這種分級(jí)一對(duì)多,且分級(jí)不平衡的模型該怎么設(shè)計(jì)表?4. Navicat for mysql 中以json格式儲(chǔ)存的數(shù)據(jù)存在大量反斜杠,如何去除?5. mac OSX10.12.4 (16E195)下Mysql 5.7.18找不到配置文件my.cnf6. mysql mysql_real_escape_string() 轉(zhuǎn)義問題7. 新人求教MySQL關(guān)于判斷后拼接條件進(jìn)行查詢的sql語句8. mysql - 千萬數(shù)據(jù) 分頁,當(dāng)偏移量 原來越大時(shí),怎么優(yōu)化速度9. MySQL FOREIGN KEY 約束報(bào)錯(cuò)10. mysql - 數(shù)據(jù)庫表中,兩個(gè)表互為外鍵參考如何解決
