這樣需求mysql表如何建立

時間 2021-05-29 22:32:07

1樓:郭啟軍

長遠當然是,一張稱號表,一張角色表,一張角色和稱號的關聯表,這樣新增稱號的時候不用動ddl,只需要增加記錄,並且稱號表還可以放稱號相關的屬性,好擴充套件。

用json陣列一時爽,擴充套件重構就知道有多難受了

2樓:Jian

這種情況一般有兩種做法

第一,簡單一點的話就在Role角色表增加tittle_ids欄位,以逗號分割,表示乙個角色對應多個稱號,只是這種做法增刪改查不方便,需要轉成list。但卻比較簡單,在表的結構對映上看是一對一的關係(一條role對應乙個以逗號分割的稱號ids字串),當然高版本mysql支援json了,你也可以直接使用json.,但我不太推薦。

因為結構並不複雜,反正都有兩張表。你只需要在role表記住tittle表的pk就行

第二,就是增加乙個兩者之間的關係表,role_tittle_realation。優點就是更符合規範(實際上這種用的多一點),缺點就是需要維護好這個表,並在查詢乙個role對應多個tiitle時,會查到多條資料,可能需要合併。

3樓:light0x00

這是乙個常見的多對多關係。

乙個稱號可以被多個角色引用,乙個角色可以引用多個稱號。

用乙個中間表存稱號和角色的關係就行了。

relation_role_title

role_id,title_id

4樓:

如果是有限個稱號可以用bigint進行邏輯運算取得。支援最多64個稱號。但是沒辦法給稱號建索引,如果需要根據稱號查詢則不太適合這種方法

5樓:普通熊貓

似乎沒有明顯的糾結點,個人感覺區別不大,不過如果是MySQL5.7的話,你可以考慮使用json格式代替text,這樣可以直接操作json內容

mysql表中列舉如何可以做到級聯?

cc void SQL 已經寫好,拿去用把,懷疑你是讓我給你做作業 建表 CREATE TABLE T CITYS ID bigint 20 unsigned NOTNULL AUTO INCREMENT COMMENT 主鍵,自增長 PROV NAME varchar 15 NOT NULL CO...

MySQL 不用外來鍵的話,如何讓表起來關聯呢?

myhlcb 表關聯跟外來鍵是兩回事。1.使用外來鍵做表關聯只是為了保證資料一致性。但是這點完全可以通過事務解決 2.使用外來鍵在高併發情況下會造成死鎖。所以一般不建議使用外來鍵。 SevenMonths 練習的話,可以用命令列新增外來鍵,好的作用就是方便級聯操作,比如主表和從表有外來鍵關鍵,你可以...

powerbi建立表之間的關係報錯,如何解決?

採悟 兩個表之間只能有一條實線的關係,強行再建立關係系統預設為虛線關係。在PowerBI中,兩個表之間只能有乙個活動關係,活動關係用一條實線顯示,如果打算在這兩個表之間繼續建立更多關係,則會顯示為虛線,即非活動關係,也稱為虛線關係,虛線關係可以有多條,預設不能發生篩選作用。以乙個最常用的場景來理解,...