AK
Access 97 is not bad at all.
I created something that sounds similar to your needs. Basically, we needed to create a quality survey on computer or server work. It became cumbersome because varies parties had ownership of the specific task - hardware, network, applicaitons, seucirty. Some of the info for the survery was redudent, some not relevant. The database I created allowed for assigning taylored surveys depending the specific requirements.
How does this compare to your needs? Well, a product "profile" would preselect xx number of products. The store would select the appropriate profiles for their needs.
How my database worked was as follows.
tblStatement
[red]StatementID[/red] - Primary key, autonumber
+ statement details, ie question, category, etc.
- This would be akin to your product
tblStatementProfile
SProfileID - primary key, autonumber
[blue]MProfileID[/blue] - foreign key to tblMasterProfile
[red]StatementID[/red] - foreign key to tblStatment
+ specifics to the statement profile - last updated, line number on the survey
Primary key - ProfileID + StatementID
- This is really an intermediary or join table between the statement profile and the statment tables.
tblMasterProfile
[blue]MProfileID[/blue] - autonumber, primary key
[green]MasterID[/green] - foreign key from the Master table
+ specifics on the profile - last updates, sequence number
- This is really an intermediary or join table between the profile and the statment profile tables.
tblMaster
[green]MasterID[/green] - primary key, autonumber
+ specifics for the master table - description, decription code, owner
What these three tables give you...
- Statments can be grouped together to form a profile. In my case, 7 statements for dekstop "prefilight"; 5 statments for desktop security, 15 statements for quality checks before releasing to the customer.
In your case, this would be the product name would equate to the "statements". The statement profiel would equate to a minor product grouping.
Kids high end skis subprofile,
- Atomik mogul master
- Phead downhill extreme
kids low end skis subprofile.
- Atomik alpine
- Phead downhill special
Adult high end skis.
- KX2 XX9
- Atomik Phatom
Adult Low end skis.
- Phead EasyTurn
- Atomik Special
- A several statement profiles are linked to a master profile. In my case, rebuild a laptop, roll out a new desktop. Build an NT server. Some of the statement profiles would be reused such as the "preflight" work.
In your case, this could apply to a main product groups.
Kids skis profile,
- high end kids skis
- low end kids skis
Adult skis profile.
- high end adult skis
- low end kids skis
- Lastly, the master table
Skis
Shoes
etc
On the complemetary side, the store has to choose their profile
For my survey database, this was done using two tables...
tblCall
[blue]CallID[/blue] - autonumber, primary key
+ details on the call
This would be your order table
tblAnswers
AnswerID - autonumber, priamry key
[blue]CallID[/blue] - foreign key point to tblCall
SProfileID - foreign key from tblStatementProfile (way near the top)
+ answers
This would be the equivalent to the order detail.
For example...
0 - 150 cm Atomik mogul master
25 - 160 cm Atomik mogul master
25 - 165 cm Atomik mogul master
0 - 170 cm Atomik mogul master
15 - 180 cm Atomik mogul master
Basically, the store would select the high end line for kids and adult ski profile, but not the low end lines. Code would populate the details. The store would then indicate the quantity for each model in the profile.
Since you are working with orders and such, instead of, or in addition to, you may need to include the detail product number on the answer table. I have only indirectly referenced it through the tblStatementProfile. This suited my purposes, but the risk on your end is hat some one may change the profile.
On the reporting side, inforamtion can be gathered on number of skis, high end vs low end type stuff at the high endd reporting down to the nitty-gritty details.
I realize this may seem complicated (or perhaps not). By using two layers of profiles, it allows the detail items to be assigned to different groups. If it did not give you a solution, I at least hope it gave some ideas to pursue.
Richard