web-dev-qa-db-ja.com

パンくずリストを実装するための推奨アプローチ

ウェブサイトにパンくずリストを実装したいのですが、今ではそれらを最適に実装する方法に苦労しています。

ユーザーは製品を検索できますが、製品カテゴリに移動して製品を見つけることもできます。製品ページで、ユーザーは製品カテゴリをクリックして類似の製品を見つけることができます。そのため、ユーザーには特定の製品/ページに到達するためのさまざまなパスがあります。

パンくずリストを実装するには2つのオプションがあると思います

オプション1:訪問したすべてのページをパンくずリストに追加します。例:ホーム>検索結果>製品1>カテゴリー2>製品2欠点:パンくずは非常に長くなる可能性があります

オプション2:各ページに特定の固定ブレッドクラムを指定します。例:ホーム>カテゴリ1>製品1問題:複数のカテゴリにある製品をどうするか?

あなたはどう思いますか?見落としているオプション3はありますか?

13
vdrmrt

おとぎ話のように「パンくずリスト」と呼ばれていますが、パンくずリストの目的はブラウザの歴史を置き換えることではありません。そのため、オプション1はオプションではありません。

これらはむしろ、ユーザーが製品をどのように見つけたか、とりわけ、見つけた製品の「横」に論理的に配置されている他の製品をどのように見つけることができるかを示す道具です。

基本的にはオプション2です。

複数のカテゴリに属する​​製品がある場合、次の3つのオプションがあります。

  • 製品へのすべての可能なパスを表示します。
  • ユーザーが製品にアクセスしたパスを表示します。 (これには、製品IDの代わりに製品からカテゴリへのテーブルの主キーを使用する必要があります。)これは、ユーザーが検索時に「検索>製品」ブレッドクラムをほとんど役に立たないことを意味します。
  • 表示されるブレッドクラムを決定する各製品の「メインカテゴリ」を指定します(ショッピングカートがあり、ユーザーがカートビューで製品をクリックした場合など、他の場所で使用されます)。
9
AndreKR

パンくずリストは、ユーザーがどのようにサイトにアクセスしているかではなく、サイトレイアウトを代表するものと想定されています。 Amazonでこれを見たくない:

Home>Products>Home>PS3 Games>Call of Duty>PS3 Games>Funky Boxer Shorts->Add To Cart

閲覧履歴とOCDクリックを示すものの、サイトを代表するものではありません:)

製品カテゴリについて言及しているように、データベースバックエンドがあると仮定します。親カテゴリがある場合は、すぐに使用できる構造があります。フロントページがあると仮定すると、パンくずリストで「ホーム」と呼ぶことができます。次に、データベース内に次のようなものがあると仮定します。

table_productCategories
    _pkCategoryID
    _categoryName
    _fkParentCategoryID

製品カテゴリのツリーを作成できます:

Software
    Windows
        Apps
        Games
        Crash-To-Desktop
    Linux
        Servers
        3-Games
Hardware
    Laptops
    PCs
    Missile-Launchers

...製品ページにアクセスするたびに、製品が複数のカテゴリに属しているかどうかを心配する必要はありません。ユーザーがそこに移動し、dbクエリを使用してパンくずリストを作成できます。

Home > Software > Windows > Games > Aunt Dolly and the Scared Sheep

さらに、製品ではないページを作成します。 「会社概要」「お問い合わせ」など。 CMSでは、これらのページのコンテンツはデータベース内にあり、分類されます。

table_contentCategories
    _pkCategoryID
    _categoryName
    _fkParentCategoryID

...あなたはアイデアを得る。これは、製品ではなくコンテンツを含むすべてのページもブレッドクラムできることを意味します。

Home > About > Finding Us in a web of backstreets
1
Moo-Juice

カテゴリまたは分類法(最も一般的なものから最も具体的なものにつながるカテゴリのネストされた階層など)(私の理解では)製品カテゴリ>製品サブカテゴリ>に違いがあるため、ほとんどの回答でブレッドクラムの特性に同意する必要があります製品>モデルまたは車>セダン>シボレー> impala> x5000)およびWebサイトのパス(ブラウザーの履歴ではなく、状況に応じたパス)。

4ドアセダンを検索して候補者のリストを見つけ、それらの1つ以上にドリルダウンする場合、カテゴリを昇順するよりも、検索結果によって返されるリストに昇順することが重要です。どんな製品を選んでも。 (したがって、上記の例は、「車>セダン>シボレー>インパラ> x5000」ではなく、「ホーム>検索>シボレーインパラx5000」である可能性があります

パンくずリストを使用して、あなたが行った場所のマーカーにすることは選択肢1と似ていますが、パンくずリストはパスを後方にたどるためにピックアップされることを目的としているため、最後にパンくずを無期限に追加することはありませんパス内の特定のポイントを選択し、そこからナビゲートするため、その後のカムブは削除されます。

「ブレッドクラム」がここでいくつか提案されているようにカテゴリツリーである場合、なぜ「ブレッドクラム」と呼ぶのですか?パンくずリストの私の理解は、それらはモデル固有ではなくパス固有であるということです。

0