डेटामैपर ओआरएम के साथ एक शुरुआतकर्ता है, इसलिए मुझे जटिल पूछताछ के बारे में सवाल है।जटिल डेटामैपर क्वेरी एसोसिएशन
सबसे पहले, यहाँ सरल है डेटा वस्तुओं:
+ ------- + + ------- + + ------- +
| Users | | Items | | Actions |
+ ------- + + ------- + + ------- +
| 1 | u1 | | 3 | i1 | | 1 | 4 |
| 2 | u2 | | 4 | i2 | | 1 | 3 |
| ....... | | 5 | i3 | | 1 | 4 |
+ ------- + | ....... | | 1 | 5 |
+ ------- + | 1 | 6 |
| 1 | 3 |
| ....... |
+ ------- +
तो, उदाहरण के लिए उपयोगकर्ता 1 कुछ आइटम एन समय देखा गया है:
class User
property :id, Serial
property :login, String
has n, :actions
end
class Item
property :id, Serial
property :title
has n, :actions
has n, :users, :through => :actions
end
class Action
property :user_id, Integer
property :item_id, Integer
belongs_to :item
belongs_to :user
end
यह कैसे DB में डेटा लग रहा है की तरह है। और मैं क्या समझ नहीं सकता, आइटम का चयन कैसे करें और उपयोगकर्ता से संबंधित उनकी कार्य राशि का चयन कैसे करें।
+ -------------------- |
| Items (item_id, num) |
+ -------------------- |
| 3, 2 |
| 4, 2 |
| 5, 1 |
| 6, 1 |
+ -------------------- +
पी.एस.:
उदाहरण के लिए, उपयोगकर्ता 1 के लिए परिणाम इस तरह से किया जाना चाहिए नियमित रूप से SQL क्वेरी कि मेरी जरूरतों से मेल खाता है:
SELECT i.id, i.title, COUNT(*) as 'num'
FROM actions a
JOIN items i on i.id = a.item_id
WHERE a.user_id = {USERID}
GROUP by a.id
ORDER BY num DESC
LIMIT 10;
तो, कैसे यह करने के लिए और जटिल datamapper क्वेरी के बारे में कोई भी दस्तावेज़ देखते हैं क्या है?
धन्यवाद - यह डेटामैपर दस्तावेज़ से बिल्कुल स्पष्ट नहीं है। डीएम एआर की तुलना में कड़े एसक्यूएल कोड उत्पन्न करता है, लेकिन यह सीखने के लिए इस तरह एक स्टैक ओवरफ्लो उत्तर लेता है। –