Nosql
如何儲存具有固定列數和可變行數的數據
我已經在堆棧溢出站點上發布了這個問題,並且比我更有經驗的使用者建議我在這裡發布它。
我在收集數據方面還很陌生,並且正在使用 R 從線上媒體文章中收集一個新的數據集,以及每篇文章的 disqus 評論和其他相關資訊。我的“記錄”將有 12 列資訊(見下圖)。我的困惑在於這些媒體文章可能有 0 到 500 條評論(也許更多)。我想盡可能有效地保存這些數據,目前我缺乏經驗的唯一想法是將每個數據保存在自己的 .csv 文件中,儘管我不確定這一點。
這就是我難住的地方。我的第一個想法是將每條記錄分成兩部分:第一部分將包含六列,並且總是有一行,第二部分將包含另外六列**,行數不同**。一種 ID 將兩者聯繫在一起。這可能是“骯髒”的解決方案。
我想向社區詢問有關儲存此類數據的新技術(例如:Mongodb、NoSQL。還是 ust SQL?)。最終,這些數據將不會線上,因為它將使用其部分或全部數據元素進行查詢或處理。
下圖顯示了部分數據記錄的範例,該記錄從 1 行開始,但行數根據文章中的評論數增加。如果輸入所有數據,此特定記錄將在最後 6 列中有 23 行。
這將極大地幫助我對前進的道路有一個想法,而不必測試或研究一項技術卻發現它不是我需要的。歡迎任何意見或建議。
根據您的圖像,以下內容會很好(使用 RDBMS 解決方案):
create table articles ( article_id integer PRIMARY KEY, title varchar(256) NOT NULL, url varchar(256) NOT NULL, summary varchar(256) NOT NULL, body varchar(4000) NOT NULL ); create table article_comments ( comment_id integer PRIMARY KEY, -- primary key, unique, does not map to the "comment number" in your question article_id integer NOT NULL, -- references articles.article_id screen_name varchar(100), disqus_url varchar(256), comment_dt datetime, -- both the date & time from your spreadsheet comment_text varchar(4000), comment_url varchar(256), comment_post_id varchar(25) );
articles
基本上,和之間存在一對多的關係comments
。你沒有說你想使用什麼RDBMS,所以數據類型需要相應地改變(長文章/評論等需要更大
VARCHAR
的s/TEXT
列等)。約束 DDL 在很大程度上也依賴於 RDBMS,因此一旦做出決定,您就必須自己查找語法。我可以推薦 Postgres。