2012-09-15 27 views
1

我最近被任命幫助建立約會網站的數據庫。我對數據庫的概念並不陌生,但我遇到了一些問題,不知道如何繼續。MySQL表設計結構用戶首選項

請注意,我試過尋找答案,但沒有一個結果非常清楚,這就是爲什麼我自己問這個問題。另外,我對1到1,1到很多,以及很多的概念都很熟悉。

該網站的用戶將選擇他們在比賽中尋找什麼,並給他們自己的信息進行匹配。

每個用戶有8或9個屬性。其中3個屬性可以有多個值,我可以描述它的最好方法是一組應該可以搜索的複選框(例如,用戶可以具有外向,關懷和有趣的個性)。

從我所搜索的內容,最流行的答案是到:

  1. 在一個表中的每個複選框場
  2. 使用多對多的關係,每個選中的框是一個創紀錄在表

而且,我應該存儲他們正在尋找什麼,或者我應該離開這只是一個查詢,用戶將自己運行?

如果我存儲了用戶正在查找的內容,他們將搜索相同的8到9個屬性,但它們都可以包含多個值(例如,您只能是一個性別,但您可能正在尋找任何性別的人)。

我希望能夠存儲用戶在匹配中尋找的內容,以便可以自動建議匹配,但我不知道如何以有效的格式創建此結構。

但我不知道哪些這些,或者我不知道的第三種解決方案,將是最適合網站設計的解決方案。我原本以爲我可以使每個屬性都具有多個值,一個BIT字段,每一個位都是一個複選框,但後來我意識到我不知道我是否可以有效地查詢這些信息。如果有辦法讓我這樣做,只要沒有性能問題,我會更喜歡這種方法。

參與的每個人都希望網站會變得流行,所以我想知道服務於大量用戶的最佳結構。

我很抱歉如果我的問題已經有了答案,我發現的答案都不符合我的情況,而且我真的不知道如何將我的問題用於搜索引擎。

謝謝你給我的任何幫助。

回答

0

你在想這件事。現在把它放在一張平坦的桌子裏。當您看到數據集的類型/大小時,您可以始終對其進行優化並編寫sql,以便生成相同的輸出。

在實際執行之前不要優化。這聽起來不像它將有數十億行。