Thanks for your response I appreciate the input.
The questions you raised are very good and are making me think about this a bit more. My answers:
1. Since the value is a particular attribute of a product once entered it should not change
2. Queries are more in depth but not insane. Some that I know I will need to run are:
- Does a spec sheet exist for a given product
- Percentage of sheets for a given MFG or Group (using productIndex)
- Percentage of required fields for a given sheet
- Which required fields are still missing data
And of course the previously mentioned need to show a view of one sheet in either a blank format or with values for one product
3. Constraints would be nice but they are not essential. For now they just want to take the data provided from the supplier and assume it is valid. The most useful constraint would be required or optional
4. Every value is a single value field for one particular product. The combination of productIndex and fieldIndex would be unique for the SpecValues table.
5. At this point no calculations are planned. Although I suspect this is due to the fact that the information has been stored in many separate text files up to this point. Once the data is properly stored this may change. If calculations are needed they would be simple such as the average weight of all products in group Q.
Quote:
|
One way of taming the beast is to break the fields up and splitting them off into a few tables based on what fields tend to be associated with each other. I suspect that if you have different types of spec sheets, there might be different reports that are more suited to one set of fields than another.
|
Could you elaborate on this a bit? The spec sheets are in groups but many fields are common among the sheets. The first 19 fields are always the same, the remaining combination of fields differ but weight may be used in 15 different product group spec sheets for example.
I thought about splitting up the fields into tables such as theBaseFields and theOtherFields but it seemed like the queries required to join these back together for a particular product would be very cumbersome. BaseFields would have 19 rows for one part and OtherFields between 1 and 29 rows. So unless I am understanding this incorrectly it would require a union query just to determine if all the fields are filled out.
One design that has been bounced around a bit has a table for every spec sheet format with a column for every attribute. Then a second table to define if these field values are required or optional for this spec sheet. But how do you connect the columns of a table into another table to show their required value? I know I can put database constraints on the fields but I need to include the required status of an attribute when requesting information on a part and if a part spec sheet arrives missing data we still want to enter what we have until we get the rest.
So I end up running in circles yet again.
