ホームページ >バックエンド開発 >PHPチュートリアル >注文テーブルはユーザー ID または注文 ID に基づいてテーブルに分割されていますか?

注文テーブルはユーザー ID または注文 ID に基づいてテーブルに分割されていますか?

WBOY
WBOYオリジナル
2016-10-17 09:30:051814ブラウズ

注文テーブルはユーザーIDまたは注文IDに基づいてテーブルに分割されていますか?

返信内容:

注文テーブルはユーザーIDまたは注文IDに基づいてテーブルに分割されていますか?

ユーザーは注文IDに従って分割された複数の注文を持つことができます

uiserid と orderid は 1 対多の関係であるため、注文テーブルの主キーは orderid で、外部キーは userid です

orderid を使用してテーブルを分割する利点は、たとえば、時間に応じて分割したり、注文数が一定の値に達したときに新しいテーブルを作成したりできることです。欠点は、userid が異なることです。クエリ時の検索条件としてよく使用されるため、多くのユニオン演算が発生します。

userid が使用される場合、状況は逆になります。テーブルのサイズは一定ではなく、時間の経過とともに増加し続けます。ただし、クエリが単一のテーブルであり、非常に高速になるという利点があります。

私の個人的な意見: nosql をキャッシュに使用しない場合は、テーブルを分離するために userid を使用することをお勧めします。パフォーマンスを追求する場合は、キャッシュに memcache を使用できます。orderid を使用してテーブルを分割しても、2 回目のクエリ時にキャッシュが直接読み込まれるため、速度は非常に高速になります。頻繁に注文を確認するユーザーにも優しいでしょう。

orderid を使用してテーブルを分割します

    orderid は保存が簡単で、データベースの負荷は比較的安定しています。しかし、データの集計はさらに困難です。
  1. useridは簡単に集約できます。ただし、ホットスポット分散の問題が発生し、データ テーブルのサイズが不一致になります。
  2. 自分で選んでください
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。