2015-06-05 82 views
1

我正在通過規劃一個rails數據庫,我正在努力開發一個數據庫的算法和結構。一個對象可以屬於多個桶。對象0×01可以在A,B,C和B中0×02,D,如果我以後只是一個對象,然後查詢:組間共享多少個對象?

A = 1 
B = 2 
C = 1 
D = 1 

A&B = 2 
A&C = 1 

想回到:

Total count in bucket A, B, C, D ... (separately) 
Total count shared between A&B, B&C, C&D, A&C, A&D, ... 
Total count shared between A&B&C, A&B&D, B&C&D ... (every combination). 

我不想救每個單獨對象的具體值。

這是一種將數據保存在數據庫中而不會使數據庫呈指數級增長的方法嗎?我只想保存總數。

回答

0

我的朋友,你需要使用安靜的計數器和嵌套循環。 例如,如果我想檢查計數爲A & & B: for(Object in A) for(Object in B) if theres a match,increment ur counter。 希望這可以幫助你