Hi all,
We just 'inherited' a project where the back end database, as well as some ASP.Net forms had been created by another contractor. The client was unhappy with the previous entry forms etc. and have approached us to redesign the interface, but utilising the same back end, which already has data in it.
Naturally, we want to use NetTalk to design the front end and just bolt it on to the back end. All fairly standard stuff.
However, there was one requirement of theirs that they HAVE to have, and it is this:
The previous programmer actually did a good job of normalising the database. There is a lot of contact information captured on the online form for applicants, companies, contractors etc., and in each case, the contact information for each entity has been separated into it's own 'ContactInfo' database table with the Linked record ID, the ContactType (e.g. Phone, Email, Fax, Mobile, Home Phone, Next Of Kin etc.) and the ContactInformation which is simply the number, or email address etc.
This way, each applicant/company/contractor can have one or a hundred different contact details. On the current form, the information is presented as a 'browse', and the user has to click the 'Add' button to add a new row to the ContactInfo table.
They don't want this, and want the three main pieces of contact information (Phone, Email, Mobile) to ALWAYS be shown as normal entry fields, with the option of adding more contact fields if needed.
I thought one way would be to make the ContactInfo browse an 'Edit In Place' browse, and upon adding a new record, populate the ContactInfo table with three blank records for Phone, Email and Mobile so that those three rows will already be in there ready for the operator to just enter the information against, and possible add new rows if needed.
Any drawbacks to this? I realise I might have to add lots of housekeeping to ensure the blank records are deleted when the user cancels a form entry etc., and also I am not sure how tricky it will be to maintain the relationships when a new record is created. The back end is MS-SQL by the way.
Is there a better way to achieve this?
Thanks,
Devan