將主鍵ID用括號包括 以字符串的方式進(jìn)行存儲 查詢的技巧
先說業(yè)務(wù)場景,像打標(biāo)簽的功能,大部分系統(tǒng)都會有這樣的功能,那么當(dāng)系統(tǒng)中很多功能模塊的實(shí)體都需要打標(biāo)簽,我們一般會采用在實(shí)體中存儲標(biāo)簽表中的主鍵ID,一般業(yè)務(wù)場景中,一個實(shí)體是允許打上很多標(biāo)簽的,那么問題就來了,這個時候一個實(shí)體就要求關(guān)聯(lián)標(biāo)簽表中的多個主鍵ID了,應(yīng)對這個問題,有兩種的方案可以選擇.一是建立中間映射表,當(dāng)實(shí)體對象上打一個標(biāo)簽,就在中間表上記錄一條實(shí)體主鍵ID與標(biāo)簽ID的映射關(guān)系,方案二是在實(shí)體類表上將添加的多個ID以字符串的方式進(jìn)行存儲.
這樣確實(shí)可以解決一對多的場景,但是當(dāng)我們需要對實(shí)體進(jìn)行分頁查詢,實(shí)體類上的屬性不可避免的要作為分頁的篩選條件了,當(dāng)標(biāo)簽作為篩選條件,問題就來了,需要聯(lián)表查詢進(jìn)行分頁,想必大家都知道,在大數(shù)據(jù)量的應(yīng)用場景中,不建議分頁進(jìn)行聯(lián)表操作,因?yàn)槁?lián)表會導(dǎo)致分頁查詢效率低下.而方案二剛好可以進(jìn)行單表分頁,接下來記錄一下采用方案二的查詢操作如何進(jìn)行.
1.標(biāo)簽數(shù)據(jù)的插入
上述采用方案二,存在一個問題,就是在實(shí)體類表上將添加的多個ID以字符串的方式進(jìn)行存儲,那么多個ID之間如何分割呢?
方案一:想必大家腦海中第一反應(yīng)就是采用逗號分割,如下所示
1,2,3,4,5
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧