簡體   English   中英

需要有關設計系統的建議

[英]Need advice on designing a system

我正在嘗試設計一個頁面以使其最快地工作,同時還試圖避免重復。

基本上,我將加載 3 組用戶的聯系人。 業務聯系人、個人聯系人和特殊聯系人,可以是業務/個人的混合。 所以本質上我會做這三個查詢:

SELECT stuff FROM contacts WHERE userId = '$userId' AND type = 'business'

SELECT stuff FROM contacts WHERE userId = '$userId' AND type = 'personal'

SELECT stuff FROM contacts WHERE userId = '$userId' and isSpecial = 1

javascript 將使用這些聯系人來填充頁面上的某些<div>s並用於搜索頁面上的聯系人。

僅加載業務和個人聯系人是否更有意義,然后通過 javascript 循環並使用 javascript 構建第三個特殊聯系人列表,本質上是其中isSpecial設置為 1?

還是使用 MySQL 查詢單獨獲取 3 個集合並將它們作為 3 個單獨的集合傳遞給 javascript 會更好嗎?

或者我應該只從 MySQL 獲得一組聯系人,只要userId = '$currentUser'並在頁面加載時通過 javascript 將它們分類到單獨的列表中? (無論如何,我將遍歷頁面加載上的所有聯系人以填充它們各自的<div> s,也許我也可以在遍歷它們時將它們分類為 3 個單獨的列表?)

或者任何其他方法是最好的?

我關心的是盡可能快地為用戶提供一切,同時盡量減少數據庫服務器的壓力。

只做一個查詢,在那個查詢中同時加載“business”和“personal”,然后找到“isSpecial”。 (假設沒有其他類型需要擔心。)

你不能這樣做:

SELECT 來自聯系人的東西 WHERE userId = '$userId' AND type = 'business' OR type = 'personal' OR isSpecial = 1

然后你只有一次調用數據庫。

您還可以將 SELECT 內容更改為僅 select 您需要的字段。 此外,更改您的 sql 查詢以獲取數據庫以根據需要對聯系人進行排序。

更新好的,只是一個想法,在頁面加載時,您首先執行 SELECT 例如 20 個聯系人(最多)然后運行 javascript 以顯示它們或其他任何內容,然后當您收到該頁面已完全加載的事件時,您然后執行 Z63225F19FCCB18E7C709F1FAEZBC 語句剩余的行(如果有的話)。

IMO 如果您使用 MySQL 本身來單獨獲取聯系人會更好,因為 MySQL 相對更快。 另外,如果 javascript 在用戶瀏覽器中被關閉,或者如果他使用移動瀏覽器,那么您將無法隔離聯系人。

編輯

正如您所指出的,javascript 是您網站的最低要求,那么最好的方法是使用單個 go 和單個查詢來獲取數據並使用 js 進行隔離。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM