鍍金池/ 問答/人工智能  Java  數(shù)據(jù)庫/ 邏輯上是樹型結(jié)構(gòu)的表緩存方案

邏輯上是樹型結(jié)構(gòu)的表緩存方案

目前有一張表,有id 和parentid2個字段,通過這兩個字段關(guān)系的映射,整個表邏輯上是一棵樹?,F(xiàn)在想把這張表的數(shù)據(jù)緩存到redis中。
問題,如何設(shè)計(jì)緩存結(jié)構(gòu),支持常用的查詢。(比如,全國的街道,鎮(zhèn),縣,省這樣的數(shù)據(jù))

回答
編輯回答
魚梓

不太了解你的具體場景, 另外假設(shè)你是 B/S

我之前的做法是, 直接生成一個js
服務(wù)端只驗(yàn)證數(shù)據(jù)就可以了

我能想到的方案

保存相鄰兩級的 id的 單向 集合關(guān)系

比如

湖北省.id : [武漢市.id, 襄樊市.id, ...]
.....
武漢市.id : [洪山區(qū).id, 東湖高新區(qū).id, ...]

//省市區(qū)三個級別的話

//一共就是 34(省級行政區(qū)) + 294(地級市) 條記錄

然后驗(yàn)證一個省市區(qū)串是否正確 只需要redis兩次請求

ps: 前提條件是你傳遞上來的是 省-市-區(qū) 而不是 僅僅一個 區(qū)

2018年2月6日 19:14