mysql - Thinkphp的RBAC認證中,“使用者-角色”表為什麼需要一個獨立的表??

來源:互聯網
上載者:User

五個表可以參考這裡:http://www.lyblog.net/detail/...

其實有一個表:

使用者和角色是一一對應的關係,為什麼不直接在使用者表中加一個角色的欄位,而是另建一個表?
這樣做有什麼好處?

補充:
看有人說使用者和角色是一對多的關係,我想知道有什麼必要設定成一對多?
一對一的關係不是更好處理嗎?

回複內容:

五個表可以參考這裡:http://www.lyblog.net/detail/...

其實有一個表:

使用者和角色是一一對應的關係,為什麼不直接在使用者表中加一個角色的欄位,而是另建一個表?
這樣做有什麼好處?

補充:
看有人說使用者和角色是一對多的關係,我想知道有什麼必要設定成一對多?
一對一的關係不是更好處理嗎?

我的理解是一個使用者可以有多個角色啊

是這樣的:

一個人 可以擁有 多個角色
一個角色 也可以被多個人使用
多對多的關係 一般情況下是 需要建一個中間表去映射的。

除非你用的是想redis非關係型的資料庫

不是一對多,而是多對多。

也許你的項目不需要,但是作為架構來說要考慮更廣泛的需求,從這個角度來說多對多的表可以作為一對一的表使用,因為多對多包含一對一,但是一對一的設計必然無法滿足多對多的需求。因此,此處會有單獨的關係表,明白了?

一個使用者有多個角色。

其實不單獨建立一張表也是可以的。

解耦啊,單一職責的model啊

ManytoMany的關係是需要中間表的!

為了滿足多對多的需求
說下我的理解可能不太準確:比如有這麼幾種角色a,b,c 按照你的理解使用者1,2,3 可以分別對應 a,b,c三個角色沒問題。如果又來了一個使用者4,他需要的角色剛好是a,b兩個角色的許可權,這樣使用者4直接屬於a,b兩個角色就可以了。而沒必要再去建立一個角色d來滿足使用者4的需求

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.