2011-12-25 68 views
0

我想創建一個系統,它可以輸出SE搜索結果中出現域的關鍵字和位置。假設收集數據不是問題,我應該選擇哪個DBMS?Mysql或其他?

我已經試過普通的MySQL設計了許多一對多的關係:

domain:id,name 
keyword:id,phrase 
domain_keyword:domain_id,keyword_id,rank 

,但它導致了domain_keyword表規模龐大的索引。 我想知道是否問題有更好的解決方案使用DBMS以外的MySQL?

+0

切換dbms系統不會減少密鑰大小。無論您選擇哪種系統,大量數據都是大型索引。除此之外,這個問題是要求意見,而不是具體的事實,所以它會被關閉。 – 2011-12-25 18:24:00

+0

@MarcB有點不同意。是的,它看起來像一個意見問題,如果你知道答案,但知道一些問題是固有的設計問題,而不是數據庫管理系統的問題似乎是合法的。 – Nicolas78 2011-12-25 18:32:45

回答

1

不。這是一個基本的數據庫設計問題,不同的DMBS處理這個問題非常相似。問你自己一個不同的問題:你希望在另一個DBMS中可能存在哪種功能?

+0

儘管您可能會使用不同的數據庫設計。例如,你需要每一擊嗎? (我假設排名意味着查詢中的順序?)或者你不能只計算每個詞的發生次數嗎? – Nicolas78 2011-12-25 18:25:09

+0

我想要的是輸出一個域出現在「關鍵字1」的X位置,「關鍵字2」的Y位置等等。對於第一個問題,我希望也許一些非關係dbms更適合我的需求。我對他們瞭解不多。 – Viacheslav 2011-12-25 18:30:40

+0

好吧,我誤解了你的數據庫的目的。如果你從未(或者很少)想要問「向我展示這個域的所有關鍵字和排名」,但只有「向我顯示這個關鍵字的所有域和排名」,並且你的空間非常短暫,你可以放棄索引在domain_id上。 – Nicolas78 2011-12-25 18:34:30

0

所有關係數據庫都有類似的特徵。這裏沒有銀彈。你應該關注你的模式設計。