Designing a database with many (100-300) fields. (1 Viewer)

vbastrangledpython

New member
Local time
Today, 22:55
Joined
Apr 22, 2014
Messages
1
Hello,

I am looking for advice on how to construct a database that has a large number of fields per entry. First I'll try to explain roughly what my database is and why it has so many fields.

My Database will be recording quotes received by manufacturers for a complex piece of machinery.

At first about ten fileds are taken up with basic information about the quote, i.e. what project it is for, the projects geographic region, predicted delivery date, quote currency etc.

Then about another ten entries are for specific physical characteristics of the machinery.

So about 20 so far, still small potatoes (ish).

Next however there is a list of options that may be included for the quotation price, and may not. For all of the options, for each quote (entry), it needs to be recorded whether or not this option is included in the quotation price and also what the price of this option is (sometimes the manufacturer will not have an option included in the quotation price but will say how much that option costs separately).

There's 17 options, so 34 entries there.

So now about 54 entries total.

Next there is an availability warranty that the manufacturer may supply for each year of the product. This is a percentage which represents the percentage of time the machine will run. An availability warranty is supplied for each year, up to 25 years after purchase. So that's another 25 entries.

That's about 79 entries so far.

Next is price indexing. Sometimes manufacturers will "index" their supplied price against the cost of a commodity, say steel. This means that the quotation price they give is time-varying, according to this indexing. Again this information is specific to each quote. For each indexing possibility, a description of the item being indexed is needed, along with what percentage of that price is indexed (usually not the whole cost) and a description of what its being indexed against.

That's three entries per price indexing, assuming at most 4 of these gives 12 total.

Lets round down a bit here and say roughly 90 fields per entry thus far.

Next comes the reallly field-adding bit, the Maintanence and Service agreements.

With a quote, a manufacturer may supply some optional service and maintanence agreements, say one lasting five years, one lasting ten years and one lasting fifteen years.

For each of these agreements there will be two prices given for each year of the agreement, a fixed price and a variable price. It is also necessary to record the total price type for each agreement (either sum of fixed and variable of highest of fixed or variable), the variable fee maximum and at what point the variable fee starts applying (a number of hours of machine use).

So for each Maintanence and Service agreement, the total number of entries is (2*x)+3 where x is the number of years.

So for the five year agreement thats 13, for the ten year that's 23, for the fifteen year 33.

So for these three agreements that's 69, or say 70.

This gives roughly 160 fields. Additionally, in the future it may be desirable to add 20 and 25 year Maintanence and Service agreements.

Apologies for the bumper decription. The main point I need to get across is that I don't have a lot of one-to-many relationships. I have many fields per entry. Some of these might be empty for some entries, (e.g. a 15 year Maintanence and Service agreement may not be given for a particular quote) but these values need to exist for each quote (i.e. can be set to blank or similar where empty).

Additionally whatever the final set up of my database in Access, it must be possible to dump this to excel in a single columnated dataset. My current plan is to write everything in Access in the way that is best for entering the quotes, then worry about the dump to excel by writing a query (if I've used many tables).

Currently I'm trying to solve this problem by having many tables with one-to-one relationships. This isn't quite working though and I keep getting the feeling that there's a better way to write this.

Ok, now that I've explained the premise;

*Takes deep breath*

My actual question is this,

Does anyone know of a good template for a database with hundreds of fields per entry? Or does anyone have some general guidance on how to set up such a database?

I am more than happy to set things up in different way but it is a fundamental issue of the problem that there are many fields per entry, this is not just how I've set up the database (there are no one-to-many relationships).

Apologies if this thread is not clear, I'm happy to edit if so.

Many thanks in advance for any advice,

vbastrangledpython.​
 

Uncle Gizmo

Nifty Access Guy
Staff member
Local time
Today, 22:55
Joined
Jul 9, 2003
Messages
16,282
list of options that may be included for the quotation price, and may not. For all of the options, for each quote (entry), it needs to be recorded whether or not this option is included​

Got as far as that... Long posts Don't get read....

The answer to >>>> list of options that may be included for the quotation price, and may not. For all of the options, for each quote (entry), it needs to be recorded whether or not this option is included <<<

Is Here: http://www.access-programmers.co.uk/forums/showthread.php?t=263639
 

spikepl

Eledittingent Beliped
Local time
Today, 23:55
Joined
Nov 3, 2010
Messages
6,142
a fundamental issue of the problem that there are many fields per entry, this is not just how I've set up the database (there are no one-to-many relationships).
Well not quite. From your narrative, many of the things that you swept under the X fields per Y something or other umbrella sound exactly like one-to-many relationships.

Edit: The clue is in "per Y" because it shows that you repeat a set of X values of the same type, but just tag each by its name and to that add Y. With a column to store the Y's you have in fact an entire table of sets of X's belonging to your quote. And voila: one-to-many :D
 
Last edited:

Uncle Gizmo

Nifty Access Guy
Staff member
Local time
Today, 22:55
Joined
Jul 9, 2003
Messages
16,282
I don't have any objection to you constructing your database with as many fields as you like. One way you can get over the problem of the limited number of fields provided by an MS Access table is by having two tables, or possibly more and linking them together with a 121 link.

The real issue is you are going against the grain, and this is not a problem for me either. I'm a bit that way inclined myself; I don't like following along, I like to do things my own way.

However there is a penalty and it's not a punishment imposed by others, it's the fact that you are undertaking something outside the norm something which few others have attempted or done.

You will soon run into problems where the answers will not have been found yet, so you must prepare yourself to do some hard work in answering these questions with very little help from others; not because they don't want to help you but because there are no recommended and/or widely understood way to do what you are trying to do.

More Info and Advice HERE: Excel in Access
 

spikepl

Eledittingent Beliped
Local time
Today, 23:55
Joined
Nov 3, 2010
Messages
6,142
@Uncle Gizmo

I do not quite agree - the penalty for denormalized data is normally self-inflicted PITA :D All queries, forms and reports cannot make use of the mechanisms designed for normal data, so you have to fiddle and repeat constructs. Further, if a change takes place and some additions in data are required then you have double PITA :D
 

Uncle Gizmo

Nifty Access Guy
Staff member
Local time
Today, 22:55
Joined
Jul 9, 2003
Messages
16,282
@Uncle Gizmo

I do not quite agree - the penalty for denormalized data is normally self-inflicted PITA :D All queries, forms and reports cannot make use of the mechanisms designed for normal data, so you have to fiddle and repeat constructs. Further, if a change takes place and some additions in data are required then you have double PITA :D

I don't disagree!

If you read my other posts on the issues, you will see that I have previously identified the same issues you relate.

The real issue is people come to MS Access believing that it is just a more advanced version of MS Excel. They build the database in the same way they would in Excel and eventually run into problems.

The other issue; and it's more difficult to overcome, is that their mindset is set in the Excel flat file configuration and perniciously MS Access appears to support this method of development. It is only when you start to get into a more advanced stage that you suddenly find the foundation you have spent months building for your data structures is wrong for the MS Access environment.

Of course there will always be exceptions to the rule very simple project would work adequately as a flat file system and I understand that some very advanced systems costing many thousands of pounds are based on the flat file approach, although I'm on doggy ground saying that as I couldn't identify one.
 

Thales750

Formerly Jsanders
Local time
Today, 17:55
Joined
Dec 20, 2007
Messages
2,116
Y'all are talking to much.

Young man, learn the basics of normalization.

End of story.

Google Normalization.
 

Thales750

Formerly Jsanders
Local time
Today, 17:55
Joined
Dec 20, 2007
Messages
2,116
A famous writer said that once you've proven you can write within the rules, you can then write anyway you like.
 

Uncle Gizmo

Nifty Access Guy
Staff member
Local time
Today, 22:55
Joined
Jul 9, 2003
Messages
16,282
A famous writer said that once you've proven you can write within the rules, you can then write anyway you like.

The issue is if you don't follow the rules, then don't expect any help when you get stuck, and it's not because people want to vindictively punish you, (although hold that thought!) it's because it will take a lot of time and effort to sort it out, and it's not worth it anyway 'cause you are only helping to dig the hole deeper....
 

Thales750

Formerly Jsanders
Local time
Today, 17:55
Joined
Dec 20, 2007
Messages
2,116
Having said that, over the years I have purposely broken the rules to great advantage.
 

ButtonMoon

Registered User.
Local time
Today, 22:55
Joined
Jun 4, 2012
Messages
304
The issue is if you don't follow the rules, then don't expect any help when you get stuck, and it's not because people want to vindictively punish you, (although hold that thought!) it's because it will take a lot of time and effort to sort it out, and it's not worth it anyway 'cause you are only helping to dig the hole deeper....

There are no "rules" of database design. Design theory and practice is science and engineering, not religion. Good data management practitioners learn the foundations of their profession; they learn about the tools and techniques available to them and then apply that knowledge to analyse and solve real problems. Anyone having difficulty with that process ought to be encouraged to improve their foundation knowledge and not just put blind faith in any set of "rules" - whatever they might be.
 

Uncle Gizmo

Nifty Access Guy
Staff member
Local time
Today, 22:55
Joined
Jul 9, 2003
Messages
16,282
There are no "rules" of database design. Design theory and practice is science and engineering, not religion. Good data management practitioners learn the foundations of their profession; they learn about the tools and techniques available to them and then apply that knowledge to analyse and solve real problems. Anyone having difficulty with that process ought to be encouraged to improve their foundation knowledge and not just put blind faith in any set of "rules" - whatever they might be.

I'm not saying anyone should follow the rules... What I said was, if you don't follow them then don't expect help.

I'm all for different unique solutions, but thats not the right way to go if you are a beginner. As a beginner you will probably need advice. If you ignore that advice and continue to build your DB in the way you want, then you will run in to problems that have no tried and tested solution. And the question you could ask is how do I know...? I would answer, I'm one of those who has tried it "My way" and gone down the route of digging a deeper and deeper hole... In other words my advice does not come from the arrogant perspective that "I Know Better" it comes from the perspective of "Don't do it that way, it's Painful! I've done that and it just leads to grief...."

I explain the problem of spreadsheet style tables, and provide a FREE TOOL for correcting the problem in this thread Excel in Access (Part 1) there is also a link to a set of YouTube videos showing a slightly more advanced example.
 
Last edited:

Users who are viewing this thread

Top Bottom