數據庫結構,我有具有以下結構的數據庫:爲metaquery
+------+------+--------+-------+--------+-------+
| item | type | color | speed | length | width |
+------+------+--------+-------+--------+-------+
| 1 | 1 | 3 | 1 | 2 | 2 |
| 2 | 1 | 5 | 3 | 1 | 1 |
| 3 | 1 | 6 | 3 | 1 | 1 |
| 4 | 2 | 2 | 1 | 3 | 1 |
| 5 | 2 | 2 | 2 | 2 | 1 |
| 6 | 2 | 4 | 2 | 3 | 1 |
| 7 | 2 | 5 | 1 | 1 | 2 |
| 8 | 3 | 1 | 2 | 2 | 2 |
| 9 | 4 | 4 | 3 | 1 | 2 |
| 10 | 4 | 6 | 3 | 3 | 2 |
+------+------+--------+-------+--------+-------+
我想高效地查詢哪些字段的組合是有效的。因此,例如,我想查詢以下數據庫:
如果類型爲1,什麼顏色值有效?
ans: [3, 5, 6]
如果類型爲2且顏色爲2,則速度的值有效?
ans: [1, 2]
如果長度爲2且寬度爲2,哪些類型的值有效?
ans: [1, 2]
的SQL等價物:
SELECT DISTINCT `color` FROM `cars` WHERE `type` =2
SELECT DISTINCT `speed` FROM `cars` WHERE `type` =2 AND `width` =2
SELECT DISTINCT `type` FROM `cars` WHERE `length` =2 AND `width` =2
我打算使用基於雲的數據庫(Cloudant DBAAS - 基於CouchDB的)。如何實現這一點,請記住,數以千計的項目可能有數十個領域?
我不知道我正確理解你的要求。在第一個例子中,你想要做什麼等價於SQL查詢,比如「Select color where type = 1」?這將很容易轉換爲CouchDB視圖。 – 2014-12-09 15:26:49
用等價的SQL查詢更新了問題。 – Terry 2014-12-09 18:43:25
@Terry你解決了這個問題嗎? – 2015-02-05 19:52:33