テーブルの目的は何product_tax
ですか? 各製品の税情報を保存することは、適切な方法ではありません。
米国 (およびおそらくカナダ) の税金は州ごとに異なり、通常は郵便番号レベルまで下がります (場合によっては準郵便番号まで!)。税金を処理する適切な方法は、個々の商品ではなく、ショッピング カート全体 (つまり、パーセンテージから計算) に適用することです。
税金の扱いについては... 楽しいオンライン ショッピングの世界へようこそ。Web サービスを提供するサービスがいくつかあります (税金は頻繁に変更されるため)。そのような製品の 1 つがAvaTaxです。
コメントで言ったことを繰り返します。多くのショッピング カートを作成してきました (そしてその過程で火傷を負いました!) 私はこの分野でかなりの経験を積んできました。
税金に「地方」は関係ありません。税金は、商品が「発送される」国、州、地域、郡、町などに応じて適用する必要があります。つまり、適用されるのは受取人の税規則です。製品が購入者以外の地域の誰かへの贈り物である場合、適用されるのはその国の税規則です。言い換えれば、買い手は贈り物を受け取る人に適用される税金を支払います!
さらに、以下のコメントをもう少し詳しく説明します...
税金は当該商品とは完全に別です。税金は、個々のアイテムではなく、費用の全額に適用する必要があります。唯一の例外は、製品が「非課税」とみなされた場合です。これは主に、「必需品」と見なされる特定の食品に当てはまります。どうやら、それ以外はぜいたく品と見なされているようです。
したがって、1 ドルの商品が 3 つカートに入っている場合、税率 8.00% が適用され、合計が 3.24 ドルになります。税金が適用された後、送料が追加されます。送料は製品価格の一部ではないため、課税されません (送料は、FedEx、UPS などによって事前に課税されます)。
税率は地域によって異なるため、データベース内の製品に「税」の値を付けようとしても意味がありません。そのデータは、トランザクションごとに個別に適用する必要があります。Web サービスから正しい税額を取得すると、エラーが発生する可能性が低くなります。税金は頻繁に変更されることに注意することが重要です。監査を受けて、誤った税金を請求したことが証明された場合は、差額を自分で支払う必要がある場合があります。税法は、誰が税金を支払うかをほとんど気にせず、税金が支払われることだけを気にします。
さて、テーブル構造に関するいくつかのアイデア...
product table {
id
sku [manufacturer or made up]
related_items
brand
description
features
specifications
keywords
price
weight
width
height
length
packaging_type
shipping_info
flatrate_shipping
taxable
discountable
insured
featured
status [enum('outofstock','instock','specialorder','calltoorder','comingsoon','onorder','sold','onhold','hide')]
stock
}
category table {
id
category_id
category_name
category_description
}
product_category table {
id
category_id
product_id
}
最後の表は、多くの製品を 1 つのカテゴリに分類する方法、または 1 つの製品を複数のカテゴリに分類する方法を示しています。