Hi Mike,
You seem to be on the right track. The way I think this would work is like the
1. Your Company Index table is acting like a container which will hold data from the company table and the options table. e.g
companyIndexID (primary key) INT
companyID INT
optionsID INT
2. You should then have the company table which should look something like this
companyID (primary key) INT
companyName VARCHAR
companyShortName VARCHAR
CompanyAddressNo VARCHAR
companyAddressLine1 VARCHAR
companyAddressline2 VARCHAR
companyCity VARCHAR
companyState VARCHAR
companyZipCode VARCHAR
3. Next your options table can be set up like this
optionsID (primary key)
optionsTitle VARCHAR
Your data should look something like this
ID
1. Facebook
2. Twitter
3. Webpage
etc
If you wanted your company index table to have more that one option selected you could add
companyIndexID (primary key) INT
companyID INT
options1ID INT
options2ID INT
options3ID INT
options4ID INT
etc
The main work comes in on DW and WA. You would run data assist wizard on your company index table. Once you have done this you would need to use MYSQL JOIN to display data from your company and options tables on your detail, results and update pages.
In relation to turning options off, when you run data assist wizard it will pick up on your optionsID foreign key in your company index table. dataassist will guide you through make a dynamic list or checkboxes to display your options.
MYSQL JOIN is the key to getting all your data from various tables to display after you have run the data assist wizard. There is also something called MRT from webassist but unfortunately I do not really know how it works.
Hope this helps a little