2011-06-30 12 views
0

私はページを設計して、重複を避けながら最も速く動作させるよう努めています。システムの設計に関する助言が必要

基本的に、私は3組のユーザーの連絡先を読み込みます。ビジネス連絡先、個人連絡先、および特別な連絡先。ビジネス/個人の両方が混在する可能性があります。だから、本質的に、私はこれらの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 

をこれらの接点は、ページ上の特定の<div>sを移入するためにはJavaScriptが使用すると、ページ上の連絡先を検索する際に使用されます。

ビジネスと個人の連絡先だけを読み込んだり、javascriptでループしたり、javascriptを使用して特別な連絡先の3番目のリストを作成したりするのが理にかかりますか?isSpecialは1に設定されていますか?

または、MySQLのクエリを使用して3つのセットを別々に取得し、JavaScriptを3つの別々のセットとして渡す方が良いでしょうか?

または、userId = '$currentUser'の場合は、MySQLから1組の連絡先しか取得できず、ページが読み込まれたときにJavaScriptを使用して別々のリストに並べ替える必要がありますか? (私は、ページ上のすべての連絡先をループして、それぞれの<div>を入力します。私はそれらをループしながら3つの別々のリストに並べ替えることもできますか?)

あるいは、ベスト?

私の関心事は、データベースサーバーの負荷を最小限に抑えながら、できるだけ早くすべてをユーザーに行うことです。

+0

データバインディングに基づいて1つの大きなリストとレンダリングを推奨します(おそらくノックアウトですか?) – Raynos

+0

@Raynosこれらの用語は何を意味しますか? (データバインディングとノックアウト) –

+0

[knockoutjs](http://knockoutjs.com/)データをDOMにバインドするためのライブラリ。 – Raynos

答えて

1

IMO MySQLは比較的高速なので、別に連絡先を取得するためにMySQL自体を使用する方がよいでしょう。また、ユーザーのブラウザでjavascriptがオフになっている場合や、モバイルブラウザを使用している場合は、連絡先を分離できません。あなたが指摘したように

EDIT

は、javascriptのは、最善の方法は、単一のデータを取得し、JSを使用して分離する単一のクエリで行く用いることであろう、あなたのサイトのための必要最小限です。

+0

モバイルブラウザのことは心配しません。なぜなら、このページはjavascript上に構築されているからです。 –

+0

Plsは編集をチェック:) – Balanivash

1

クエリを1つだけ実行し、そのクエリで "business"と "personal"の両方を読み込み、その後に "isSpecial"を探します。 userId =「$ userIdを」連絡先から

SELECTものをAND =「ビジネス」ORタイプ=「個人」と入力します。あなたは

+0

このようにする理由は何ですか? –

1

を行うことはできません(。それは心配する他のいくつかのタイプが存在しないことを前提として) OR isSpecial = 1

次に、データベースへの呼び出しは1つだけです。

また、必要なフィールドのみを選択するようにSELECT項目を変更することもできます。また、必要に応じてデータベースを取得して連絡先をソートするように、SQLクエリーを変更します。

更新 [OK]をクリックすると、最初の20人の連絡先(最大)のSELECTを実行し、次にjavascriptを実行してそのページを表示するかどうかを確認します。残りの行のSELECTステートメント(存在する場合)。

+1

彼はそれらを別々に表示したい。したがって、問題はフェッチするだけでなく、タイプに応じて分離することです。 – Balanivash

+0

私はそれを行うことができますが、私は、ページロード時にjavscriptを使用して別のリストにそれらを並べ替えるときに、ユーザーがどれくらい待たなければならないか心配しています。 (ビジネスと個人両方で100〜200件の連絡先がある可能性があります) –

関連する問題