1

ユーザーは私の Web サイトに記事を追加できます。誰かが記事をクリックすると、次のようなリンクが表示されます。

www.example.com/article/cars

「車」は記事のタイトルです。

次に、クエリを使用してデータベースから記事のコンテンツを読み取ります。

SELECT * FROM Article WHERE Title = 'Cars'

ただし、別のユーザーが「車」というタイトルの記事を追加することもできます。その後、うまくいきません...「車」に関する2番目の記事もリンクを取得するためwww.example.com/article/cars、クエリは2つの記事を返しますが、そのページには1つの記事データのみを表示したい.

したがって、次のような方法でこれを解決する必要があります。

SELECT * FROM Article WHERE Title = 'Cars' AND Id = '1';

もう1つは次のとおりです。

SELECT * FROM Article WHERE Title = 'Cars' AND Id = '2';

しかし、タイトルとIDを含む記事を読むために、このようなリンクを持ちたくありません(URLではなく非表示にしたい):

www.example.com/article/cars/1
www.example.com/article/cars/2

これを解決する方法を知っていますか?ユーザーは同じ名前の記事を追加することができますが、誰かがリンクをクリックしたときに、データベースから読み取られるコンテンツは正しい記事のものでなければならず、URL に記事 ID が表示されることはありません。

4

4 に答える 4

0

これを解決する方法を知っていますか?

そう、思い当たるカップルがいます。まず、URL に ID を含めます。そのようなことはしたくないとおっしゃいましたが、次のような URL を考えてみてください。

www.example.com/article/cars-1
www.example.com/article/cars-2

あなたはそれで働くことができます。ただし、ルーティングを使用して、本当に手の込んだ作業を行う必要があります。

2 番目に思い浮かぶのは、パーマリンクをデータベースに保存することです。これにより、記事が作成されたときにパーマリンクを作成できるようになり、ある種のカウンターまたは斬新なアイデアを追加して、カスタムパーマリンクを指定する必要があることをユーザーに知らせます。これは、既に使用されているためです。

記事のタイトルをプルして URL を作成する代わりに、実際のパーマリンクをプルします。

注:注目に値すると思います。スタック オーバーフローは、正確な理由から、実際には URL に ID を格納します。読み取り可能な URL は Google 用に作成されています。たとえば、この投稿へのリンク私の答えは次のとおりです。

http://stackoverflow.com/questions/17731295/two-articles-with-same-title-reading-from-database/17731397#17731397
于 2013-07-18T18:38:16.273 に答える
0

結果を明確にするページを作成できます。www.url.com/article/car のような URL を入力すると、データベースで「car」というタイトルの記事を検索し、両方の結果を固有の URL で表示します。

于 2013-07-18T19:11:26.693 に答える