質問

記事内のリンクを管理するための戦略を探しています。記事の本文はデータベースに保存され、ページのアセンブリ中に取得されます。リンクを簡単に定義および管理するには、データベースに何を保存する必要がありますか?

一部の純粋主義者は、マークアップをデータベースに保存してはならないと考えています。適度に良いと考える人もいます。しかし、私にとっては、リンクの概念はそのHTMLマークアップとほとんど切り離せません。

「アンカーテキスト」を単に埋め込むよりも、記事内(データベース内)でリンクを表現するための、より簡潔な方法がありますか?

私が始めたアイデアの1つは、関心領域を意味的に記述するのに十分なマークアップを埋め込み、別のテーブルにそれらの概念を実際のURLにマップすることです。特定の概念のすべての出会いはリンクでラップされます。

<p>Here is an example of a
<span class="external-reference semantic-web">semantic</span> 
approach to link management.</p>

テーブルは、記事のURLと 'semantic-web'のキークラスを http://en.wikipedia.org/wiki/Semantic_Web

<p>Here is an example of a <span class="external-reference semantic-web">
<a href="http://en.wikipedia.org/wiki/Semantic_Web">semantic</a></span> 
approach to link management.</p>

このアプローチで気に入っているのは、すべてのURLがデータベース内の1つの場所にあることです。記事の本文に触れることなく、技術的にリンクを変更または削除できます。 CSSには非常に良いクラス名があります。

別のテーブルを維持したり、レンダリング時間に別のステップ/フェーズを追加したりするのは嫌です。応答時間が遅くなる可能性があります。

優れたリンク管理を提供する他の戦略はありますか?

役に立ちましたか?

解決

テンプレートを確認したい場合があります(PHPの場合は Smarty など)。

マークアップがデータベースに通常保持されるべきではないことに同意します。

ただし、「ポインター」を実装することも検討できます。各リンクで、ページのストレージを中断し、テーブル内のリンクにリンクへのポインターを追加し、次にリンクテーブル内のページのコンテンツの次のセグメントへのポインターを追加する概念。 (それがどれほど複雑になるかわかりません。ただのアイデアです。)

または、さまざまなCMSツールがどのようにアイデアを処理するかを見てください。すべてを1つの大きなテキストブロックとしてデータベースに入れるものもあれば、テンプレートに依存するものもあれば、まったく別のことを行うものもあります( Plone )。

他のヒント

これを行うためのいくつかの試みがあります。

これを行う1つの方法は、URLリダイレクトを使用することです。コンテンツへのパスではなく、URLが要求しているものを解釈するロジックコンポーネントをサーバーに実装できます。

別の試みは、リンクが元々[データベースで検索可能な]参照値に設定され、実行時/生成時に要求されることです。

とにかく、リンクしたい資料を何らかの識別子で参照する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top