It does sound to me as if you are introducing redundancy. This is not merely inefficient, it is risky as it undermines the integrity of the database and leaves it open to inconsistent data. Essentially each 'fact' must be stored once and once only in a database, e.g. in a table of addresses my address includes the town of Stafford which is in the county of Staffordshire, which is in the UK. To have columns for town, county and country in the addresses table would be wrong; this is what's meant by redundancy. All that's necessary is to have a column for townID (not the name as these can be duplicated). This is because the fact that Stafford is in Staffordshire is recorded in the Towns table and that Staffordshire is in the UK is recorded in the Counties table. There will also be a Countries table at the top of this hierarchy as this allows 'referential integrity' to be enforced, preventing an invalid country being entered in the Counties table.
So the question arises, is the 'fact' that task A is always, without exception, associated with area B recorded somewhere in a 'referenced' table? If so then in a 'referencing' table which records tasks you only need a column for task, not for area. Once the task is known the area is known; in the jargon its said that area is 'functionally dependent' on task.
If on the other hand task A could also be associated with area C or area D, then area is not functionally dependent on task, so its legitimate to have both task and area columns in a referencing table. This in turn brings us to your other point, that the Area_ID value is being stored in the 'referencing' table, not the area name. This is how it should be. Knowing the Area_ID we automatically know the area name, again because the latter is 'functionally dependent' on the former. It doesn't matter that you need to show the area name in reports, because all you have to do is base the reports on a query which joins the tables on Area_ID and include the area name in the columns returned by the query. You can then bind a control to the area name column in the report. Joining tables in queries like this to return whatever columns you need from different tables is how you can show the data you require without introducing any redundancy into the database.
Ken Sheridan Stafford, England
On Apr 30, 4:49 pm, Chantel33 <Chante...@discussions.microsoft.com> wrote:
> In my form, I would like the table field to populate based on the selection > from a combobox in another field. The two colums are Area and Task. On my [quoted text clipped - 9 lines] > don't want necessarily need the area to show in the form, but i do need it to > show in the table and it has to correspond to the task choosen. Help!! |