舉例:有一張用戶表,一張水果表,一張用戶與水果的關(guān)系表,關(guān)系是一個(gè)用戶可以喜歡多種水果。當(dāng)用戶在執(zhí)行添加操作時(shí),我們是一次把用戶選擇的水果都加入到關(guān)系表中,但是在更新修改時(shí),大家是怎么做的呢?一種方法是刪除該用戶之前喜歡的所有水果,把最新的全部重新加入關(guān)系表中;另一種方法是查詢出之前的,與最新的進(jìn)行一一比對(duì),如果新的沒有就刪除舊的,如果舊的沒有,就添加進(jìn)去。大家的方法優(yōu)化方法是什么呢?
2 回答

灬紫羽
TA貢獻(xiàn)107條經(jīng)驗(yàn) 獲得超71個(gè)贊
我最近剛解決一個(gè)類似的這樣問題,首先說(shuō)說(shuō)我的情況(一個(gè)app應(yīng)用表,一個(gè)設(shè)備表,一張關(guān)系表,一個(gè)app可以在多個(gè)設(shè)備上安裝),你說(shuō)的上述兩種方法我也都測(cè)試過(guò),也咨詢過(guò)開發(fā)時(shí)間比較長(zhǎng)的老程序員;最后得到的結(jié)果就是,當(dāng)數(shù)據(jù)量不太大的時(shí)候,刪除之前所有的關(guān)系,然后重新添加新的關(guān)系這樣效率高;但是如果數(shù)據(jù)表本身數(shù)據(jù)量較大的情況,最好還是一一比較,得到結(jié)果再刪除舊的添加新的。
個(gè)人拙見,求各位大神指導(dǎo)。

Caballarii
TA貢獻(xiàn)1123條經(jīng)驗(yàn) 獲得超629個(gè)贊
在前段控制,只對(duì)用戶操作作出相應(yīng),比如用戶刪除了一個(gè)喜歡的,那就更新一條喜歡的,用戶更新了一個(gè)喜歡的,那就更新一條喜歡的。
添加回答
舉報(bào)
0/150
提交
取消