我正在尋找最好的方法來解決以下要求。 「最佳」在這裏指的表現擊敗「美麗」的設計,我不怕醜,但高性能的設計。數據庫設計的實體,具有許多選項
這裏有約束:
- 我想有幾個
Player
在我的數據庫。我預計最多有20k玩家。 - 有一堆
Game
那兒,太 - 這是關於500遊戲列表。一旦遊戲進入遊戲,遊戲不會改變,但偶爾遊戲將不得不被添加。 Player
和Game
之間的關係如下:玩家要麼玩遊戲或他不,他具有用於每一個的遊戲技能(值從1到5)。
現在,這裏是真正讓我頭疼的一部分:我希望能夠通過指定多個Game
S,一分鐘的技能和技巧最大搜索多個Player
。所以有可能,我有這500場比賽,所有比賽都由OR組合,這使得一個很長的查詢不是很快。我的做法是,我應該以某種方式擺脫的OR和AND將取代他們,但如果有人是不尋找特定的Game
,這意味着他正在尋找誰玩或不玩特定的遊戲玩家(因爲用戶對其他遊戲感興趣)。
我真的希望我缺少明顯的東西或一些技巧,使我不必在每個搜索請求數百或從句的...
我與解析(因此標籤)試了一下,得到了一個錯誤:{"code":154,"message":"too many $or clauses"}
第一:是的,我們是在SQL的世界,但我會願意切換到任何其他數據庫。目前,我使用Parse,他們使用 - 我認爲 - MongoDB。第二:爲了清晰起見,我更新了問題。陷阱是用戶能夠在他的搜索中指定任何遊戲,搜索玩任何所選遊戲的玩家。 –
@PhilippFlenker在SQL中,你可以只用'IN(...)'該條款。 – RBarryYoung
究竟如何?請記住,用戶可以玩多個遊戲。除非我不明顯,否則在這裏使用IN並不是微不足道的。 –