imo, from a database perspective, you can probaby do away with the package_map table and just add the id's of the products in the one table:
package_id | name | price | product_id
1 | Premium Combo | 200.12 | 2,4,5,6
2 | Basic Combo | 140.21 | 2,54,3,22
3 | Basic Combo | 122.32 | 1,5
then you don't have to do any sql joins or what not to get the right query if you're not savy with that.