ショッピングカートの場合、運送業者が発送できる郵便番号のデータベースを構築したいと思います。
私はいくつかのキャリアを持っているかもしれないので、私は柔軟な解決策を探しています。また、お支払い方法は、代金引換(現金)とプリペイド(ネットバンキング)の2つです。
いずれかの運送業者からの配送郵便番号のリストには、COD方式の場合は2,775エントリ、前払いの場合は4,139エントリがあります。
デザイン#1(この回答のおかげで)
ストレートリストを範囲({1,2,3,5,8,9} => {(1,3)、(5,5)、(8,9)}など)に変換し、スキーマを作成します-
carrier
id(int) | name (varchar)
cod_zipcodes
start(int) | end(int) | carrier(fk::carrier.id)
prepaid_zipcodes
start(int) | end(int) | carrier(fk::carrier.id)
範囲に変換すると、プリペイドの郵便番号は1,593(38%)に縮小され、タラの郵便番号は842(30%)に縮小されました。
デザイン#2
cod_zipcodes
zipcode(int)
prepaid_zipcodes
zipcode(int)
基本的に、このデザインにはリストがそのままあります。複数のキャリアがある場合は、リストをマージします。そのため、特定の郵便番号についてどの運送業者が出荷しているのかという情報が失われます。しかし、これは問題ではありません(しかし、それが整理されていれば、それも問題ではありません!)。データベースを検索したいのですが、顧客が入力した郵便番号が許可リストに含まれていることを確認します。
ライブデータベースの経験は限られています。どちらのデザインが優れているかを示すか、独自のデザインを提案してください。
ありがとう!