+4  A: 

This is a standard many-to-many relationship (many packages to many items)

CREATE TABLE products (
product_id integer PRIMARY KEY,
product_name text,
price numeric);

CREATE TABLE packages (
package_id integer PRIMARY KEY,
package_name text,
price numeric); 

CREATE TABLE package_items (
package_item_id integer PRIMARY KEY,
package_id integer,
product_id integer,
qty integer );
Donnie
That is perfect!! Thank you very much!
Craig
I'd put the PK on package_id and product_id or at the VERY LEAST, put a unique index on them.
Tom H.
Could go either way, depending on if you plan to use packages in another table for some reason or not. But you're right, they do need at least a unique index
Donnie
+1  A: 

What about a Package table and a PackageProduct table?

CREATE TABLE Product (
product_id integer PRIMARY KEY,
product_name text,
price numeric); 

CREATE TABLE Package (
package_id integer PRIMARY KEY,
package_name text
price numeric); 

CREATE TABLE PackageProduct (
product_id integer,
package_id integer);

Then just add your packages to the package table and add a row for each product in a package to the PackageProduct table.

Brian
That is perfect!! Thank you very much!
Craig
+4  A: 

Also note that you should put foreign key constraints on columns that reference rows in other tables.

CREATE TABLE PackageProduct (
product_id integer,
package_id integer,
FOREIGN KEY (product_id) REFERENCES Product(product_id),
FOREIGN KEY (package_id) REFERENCES Package(package_id));
Styggentorsken
I do in production, I just threw this together as an example, but thanks for the heads up!
Craig