Hello. I am creating a little application with Access, the task is basically one to fill out forms. Information like customer details, for example, will occur on more than one form so they will be stored in separate tables, in typical relational structure. But one caveat is that when any form is printed, even two years from now, it must print EXACTLY as it was originally created. That means if the customer changes their telephone number, the form from two years ago must reflect the telephone number that was current at that time. As I see it I have two options, and I am just looking for some experienced opinions.
Firstly, I could use the "customer table" to simply fill in information to a flatfile, thus retaining that original customer information. But here I am talking about a flatfile, which seems cheesy. Secondly, I could "version" the client files - so that if customer information changes the program would force the creation of a new customer record rather than editing of the original customer. So now there would be two customer records for that customer, each with a unique primary key, but differing in at least one specific detail (such as telphone number). Now the old form can link to the "old customer", while a new form can link to the "new customer".
Approach number 2 is a more relational approach, but is also more difficult to implement. This is complicated more since there are actually about 20 "supporting files" like my customer example that would need to be "versioned". On the other hand, using approach 1 would result in a pretty massive flatfile since I would be filling out lots of forms. Am I just being stupid for considering approach 2, when the first is so easy (ie not challenging)? Looking for your opinions on my mental health. Thanks.
Firstly, I could use the "customer table" to simply fill in information to a flatfile, thus retaining that original customer information. But here I am talking about a flatfile, which seems cheesy. Secondly, I could "version" the client files - so that if customer information changes the program would force the creation of a new customer record rather than editing of the original customer. So now there would be two customer records for that customer, each with a unique primary key, but differing in at least one specific detail (such as telphone number). Now the old form can link to the "old customer", while a new form can link to the "new customer".
Approach number 2 is a more relational approach, but is also more difficult to implement. This is complicated more since there are actually about 20 "supporting files" like my customer example that would need to be "versioned". On the other hand, using approach 1 would result in a pretty massive flatfile since I would be filling out lots of forms. Am I just being stupid for considering approach 2, when the first is so easy (ie not challenging)? Looking for your opinions on my mental health. Thanks.