ホームページ  >  記事  >  バックエンド開発  >  セグメントフォールト URL を実装するにはどうすればよいですか?

セグメントフォールト URL を実装するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-08-18 09:15:381173ブラウズ

https://segmentfault.com/a/11...
URLの後ろにある1190000000490733の実装方法とこの方法の利点

返信内容:

https://segmentfault.com/a/11...
URLの後ろにある1190000000490733の実装方法とこの方法の利点

これがあなたが望む答えです
http://segmentfault.com/q/1010000000142374

以下の答えはすべて推測です。類似点はまったくの偶然です。

一定のシステムルールに従って番号を発行するグローバルナンバラーに似たサービスがあります

最初の 3 桁は、システム モジュールの識別子用に予約されています。たとえば、101 は Q&A、119 は記事、メモは 133、位置は 128、アクティビティは 116、お気に入りは 123 などです。

他のモジュールがある場合もあります。

最後の 13 ビットは予約された数兆のデータに相当し、システム内で生成されるすべてのモジュールのすべてのデータが自動的にインクリメントされます

利点は次のとおりです:
1. モジュール、サブテーブル、分散などによる便利なデータベース展開
2. 便利なサービス指向アーキテクチャ
3. フルスタック データの再帰収集に特定のしきい値を設定します
4.特定のモジュールの実際のステータス データの量
5. ID の最初の 3 桁で、このデータがどのモジュールに属しているかをすぐに知ることができます
6.

a は記事を表す必要があり、URL は ID 1190000000490733 の記事を表示することを意味します。この種の ID には、ランダムに生成されたルールがいくつかあります。その目的は、ユーザーが推測したり、クローラーがそれを捕捉したりすることを防ぐことです。後列に1、2、3、4、5などの整数を入れると他の人が推測しやすくなります

これは RESTful インターフェイスに非常に似ています。RESTful API 設計ガイドのこの記事を読んで、インターフェイスを明確にするために RESTful 仕様の利点をより合理的に使用してください。

実装方法としては、一意のIDが生成されるようにするだけです。

mysql の uuid_short 関数を使用して uuid を生成できます。もちろん、SF は独自のルールをカスタマイズしたり、PHP の関数を使用して uuid を生成したりすることもできます。

試してみたところ、IDが不連続であることが分かりました。推測では、サブデプロイメントをサポートする ID 生成サービスによって生成された ID である必要があると考えられます。

リーリー

記事、質問、コメントはすべてこのID生成サービスを使用すると推定されるため、IDを直接+1するとデータにアクセスできなくなります。

この分散型IDジェネレーターを使用する理由は

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。