数据库设计中,多对多关系使用使用逗号分割关联讨论
進(jìn)公司一個(gè)月,發(fā)現(xiàn)公司很多人喜歡用逗號(hào)分割,去存儲(chǔ)其它表的主鍵,做多對(duì)多關(guān)聯(lián),但存在很多亂用現(xiàn)象。這里對(duì)這種方式做了下總結(jié)。
?
?
? ? ? ??在傳統(tǒng)數(shù)據(jù)庫設(shè)計(jì)中,多對(duì)多關(guān)系存儲(chǔ)通常都是用一張中間表來簡(jiǎn)歷兩張表的關(guān)系。例如用戶和角色,一個(gè)用戶有多個(gè)角色,而一個(gè)角色下又會(huì)有多個(gè)用戶。這樣,理所當(dāng)然的我們會(huì)想著用張中間表去存儲(chǔ)兩者的關(guān)系。這樣角色就能很容易的查出自己對(duì)應(yīng)的多個(gè)用戶。用戶也同樣能容易查出自己有哪些角色。這種設(shè)計(jì)是通用而合理的,兩個(gè)對(duì)象都可以維護(hù)之前的關(guān)系。
? ? ? ? ? 有種情況:例如對(duì)象A與對(duì)象B,兩者之間是多對(duì)多關(guān)系。但A對(duì)象是個(gè)相對(duì)固定,或者說幾乎沒有查詢與操作。我們只需要在B對(duì)象上維護(hù)A對(duì)象的關(guān)系。這時(shí)我們可以用逗號(hào)去分割A(yù)對(duì)象的ID去存儲(chǔ)多個(gè)A的關(guān)系。
優(yōu)點(diǎn): 不用建中間表,操作起來會(huì)更方便。
缺點(diǎn): ? 當(dāng)二者關(guān)聯(lián)關(guān)系改變時(shí),不易去維護(hù),而且這種關(guān)聯(lián)關(guān)系時(shí)單向的,也就是說只適合與單向關(guān)聯(lián)。 ???適用范圍總結(jié):與枚舉表關(guān)聯(lián),與附件表關(guān)聯(lián),及其他只需單向關(guān)聯(lián),且關(guān)聯(lián)數(shù)量不會(huì)太多的情況。?
優(yōu)點(diǎn): 不用建中間表,操作起來會(huì)更方便。轉(zhuǎn)載于:https://www.cnblogs.com/toSeeMyDream/p/8865444.html
總結(jié)
以上是生活随笔為你收集整理的数据库设计中,多对多关系使用使用逗号分割关联讨论的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下增加磁盘改变指定文件路径分区
- 下一篇: USACO-Section2.3 Mon