オンライン ショッピング カートがあり、チェックアウト時にユーザーが郵便番号を入力します。
お支払い方法は、代金引換とネットバンキングの2種類。宅配便は、特定の地域(郵便番号で識別)にのみ発送されます。また、代金引換とネットバンキングでは、許可されている郵便番号のリストが異なります。(リストの長さ = 代金引換の場合は約 2500、後者の場合は約 10,000)
これらのリストをデータベースまたはフラット ファイルに保存する必要がありますか?
データベースの場合は を使用してクエリを実行しSELECT
、ファイルの場合は配列内のリスト全体 (または部分的) を読み取ってから、バイナリ検索を実行できます。
次の点を考慮して、どちらが速いでしょうか-
- 現在、宅配サービスは 1 つしかありませんが、将来的にはさらに多くのサービスがあり、独自のさまざまなリストがあります。したがって、複数のリストを検索する必要があります。
- 主に読み取りがあり、書き込みははるかに少なくなります。また、リストは後でカスタマイズできるようにする必要があります。
私はデータベースを選択したでしょうが、それによって処理が遅くなるかどうかはわかりません。また、データベースの設計に時間をかけたくありません。ファイルの方が優れている場合もあります。
編集:
ABC と DEF という 2 つの宅配会社があるとします。ファイルには、ABC_COD.txt、ABC_net.txt、DEF_COD.txt、DEF_net.txt の 4 つのファイル (たとえば) があります
。したがって、顧客が代金引換を希望する場合は ABC_COD を検索し、そこにない場合は DEF_COD などを検索します。これはコストがかかるようですが、簡単に拡張できます。
ここで、データベースを考えてみましょうAllowed_zipcodes
。5 つの列を持つテーブルがあります。x 社が y コードに対してタラを提供している場合、対応する列はtrue
、そうでない場合はfalse
です。これはルックアップには適しているように見えますが、会社を追加するとスキーマが変更されます。
今後の変更やデザインも併せてご検討ください。