обычно желательно оставить структуру таблицы такой же, и просто добавить строки, чтобы удовлетворить случай, который вы иллюстрировали.(Существуют такие причины, как оптимизация, когда вы можете отойти от этого)
Я бы посоветовал при поиске «3-й нормальной формы», если ваша база данных соответствует правилам, чтобы быть в 3-й нормальной форме, тогда вы обычно заканчиваетес гораздо меньшими затратами на техническое обслуживание и более легкой расширяемостью.
table1
id | from_weight | to_weight | price
1 | 0g | 499g | 1.99
table2
id | table1id | countrycode | status
1 | 1 | us | Y
2 | 1 | ca | Y
3 | 1 | gb | N
это то, как вы бы запрашивали данные
select price from table1
join table2 on table1.id=table2.table1id
where countrycode='us' and status='Y' and
300 between from_weight and to_weight