1

私は C# と ASP.NET MVC で Web サイトを開発しており、ユーザーは自分の Web ページを管理できます。現時点では、StackOverflow のパーマリンク ソリューションを使用していますが、これが私の状況で機能するかどうかはわかりません。これは、人々が常にページを追加および削除するためです。これは、ページ テーブルの ID が非常に大きくなることを意味します。

例: mydomain.com/page/ 17745288223 /my-page-title

より良い解決策はありますか?

4

4 に答える 4

0

なんらかのハッシュを使用して、ルックアップをより効率的にすることができます。たとえば、ページ タイトルの SHA-1 ハッシュ、作成日、ユーザー情報などを計算できます。git がコミット ID に対して行うのと同じです。

または、単純な数字を使用することもできますが、一部の URL 短縮サービスのように、16 進数または英数字を使用してコンパクトな表現に変換できます。

于 2012-12-25T22:48:22.667 に答える
0

あなたの場合(ページを作成するユーザー)の場合、実際には、単一のユーザーが作成したすべてのページを自分のパスの下に置く方がユーザーフレンドリーだと思います。

 mydomain.com/page/{username/nickname/some-name-selected-by-user}/my-page-title

このような形式を使用したくない場合は、URL にintorを使用longするとよいでしょう。

于 2012-12-25T22:56:10.593 に答える
0

これは、ページ テーブルの ID が非常に大きくなることを意味します。

それの何が問題なの?

an の最大値intも非常に大きい (20 億をわずかに超える) ため、それぞれ数千ページの数百万のユーザーを持つことを計画していない限り、制限に達するとは思えません。

それでも心配な場合は、long(64 ビット整数) を使用できます。それぞれ数百万のページを持つ数兆のユーザーを処理できます。地球の人口はわずか数十億人であることに注意してください。

于 2012-12-25T22:48:37.187 に答える
0

これはコメントとして始まりましたが、私はそれが大きくなっていると判断したので、ここに再び..

ページIDソリューションは問題ないようです。

何を心配していますか?7文字の数百万ページを期待している場合。9 ~ 10 文字の数十億ページ以上を期待している場合は、かなり扱いやすいと思います。

また、16 進数で表現し、最大 8 文字に減らして、最大 2^32 の異なる ID に適合させることもできます。

于 2012-12-25T22:48:45.047 に答える