What are some potential database structures for storing shipping provider information, weight restrictions, and costs for a PHP-based e-commerce website?

When storing shipping provider information, weight restrictions, and costs for a PHP-based e-commerce website, one potential database structure is to have three separate tables: one for shipping providers, one for weight restrictions, and one for shipping costs. The shipping providers table can store information such as provider name and contact details. The weight restrictions table can store weight ranges and corresponding restrictions. The shipping costs table can store costs based on weight ranges and shipping provider.

CREATE TABLE shipping_providers (
    id INT AUTO_INCREMENT PRIMARY KEY,
    provider_name VARCHAR(50) NOT NULL,
    contact_email VARCHAR(50) NOT NULL
);

CREATE TABLE weight_restrictions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    weight_range VARCHAR(50) NOT NULL,
    restriction VARCHAR(100) NOT NULL
);

CREATE TABLE shipping_costs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    provider_id INT,
    weight_restriction_id INT,
    cost DECIMAL(10,2) NOT NULL,
    FOREIGN KEY (provider_id) REFERENCES shipping_providers(id),
    FOREIGN KEY (weight_restriction_id) REFERENCES weight_restrictions(id)
);