2009-12-26 145 views
1

與feed閱讀器類似,我存儲了一組文章,每篇文章都與一個源(feed)相關,每個feed可以屬於一個類別。我想要做的是:SQLite設計問題

  1. 檢索屬於某個類別的供稿的文章。
  2. 將文章分組。一種情況是按日期(published_time),以便我擁有組,例如:(12.04.09 - 3篇文章,17.04.09 - 9篇文章等等)
  3. 循環遍歷每個組並顯示每篇文章。僞代碼:
foreach (Group group in results) 
{ 
print(group.Name); 

foreach (Article article in g.Articles) 
{ 
    print(article.Title); 
    print(article.Content); 
} 
} 

我覺得喜歡簡單的東西:

SELECT group_concat(item_id, '#') FROM items GROUP BY date(published_time) 

會工作。但然後我不得不分裂產生的行,並通過該循環(並沒有group_concat(*)函數)

我很困惑,我會如何組合(2)結果,以便我可以迭代通過每一個,保存組名稱。我認爲SQL查詢返回一個大表,因此,只用一個查詢就可能完成這個工作。

我認爲這是一個數據庫設計問題,我也是SQLite的新手(SQL),所以我問你,大師,如何有效地完成這項工作?

回答

1
SELECT Title, Content, date(published_time) AS Date 
FROM items 
ORDER BY date(published_time); 

僞代碼:

last = None 
for r in results: 
    if not last or r.Date != last.Date: 
    print "Group", r.Date 
    print r.Title, r.Content 
    last = r 
+0

簡單,有效的:)謝謝 – 2009-12-26 15:05:22