[AccessD] Normalization discussion

Dan Waters df.waters at outlook.com
Fri Aug 29 13:18:28 CDT 2014


Hi Susan,

I know I'm jumping into this after a lot of discussion has already occurred.


You might consider having a single table for each animal with all its
one-time information.

I would treat this as a business process that has a beginning, middle
stages, and an end.  The tblAnimalMain table would carry the information for
each animal that would be recorded only once, like acquisition, animal
characteristics, current storage location, final disposition, etc.
tblAnimalMain would be your top-level table.

Because each animal is acquired in one and only one way, you could put the
acquisition information into the tblAnimalMain table.  Not all fields in
tblAnimalMain would be used for every animal.

I would be thinking of one-many tables like tblExamPlusResult (with another
one-many table for specific tests that were run and the result of each, for
each exam).  You'll also want to keep track of treatments/surgeries and the
results of those (could be another one-many).

Hope this is helpful,
Dan

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins
Sent: Friday, August 29, 2014 12:54 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Normalization discussion

What I'm struggling with today is acquisitions. There are three ways that we
acquire an animal -- live birth here at the center, from an institution, or
through law enforcement confiscation (almost never happens, but I'm allowing
for the possibility). So, each animal has an acquisition type, but depending
on the type the subsequent data will be different. For example, if a live
birth here at the center, we will also track the dam and sire ids. If we
acquire an animal from an institution, we'll track the institution's info,
like name, address, phone, and a contact.

So, an animal has an acquisition id by type. It's easy to keep an
institution and live birth table -- that's no problem. But how do I relate
them back to the individual since it can come from two different tables? I
think this is probably easier than I'm making it.

Susan H.


On Fri, Aug 29, 2014 at 11:39 AM, Susan Harkins <ssharkins at gmail.com> wrote:

> Right now, most of my foreign keys in the parent table are simple lookups.
> For instance, species -- each individual has a species and those are 
> in a child table. We'll update that table infrequently -- only if we 
> add a new species. We have several individuals of each species. 
> Another is gender -- female and male, but the parent table has a 
> foreign key to the gender table. (Gender's probably overkill, but I'm 
> on autopilot I think). I'm also tracking acquisition method -- there 
> are only three, so again, it's a lookup table and not a true child table.
>
> Susan H.
>
>
>
>
>
>
>
>
> On Fri, Aug 29, 2014 at 10:18 AM, Charlotte Foust < 
> charlotte.foust at gmail.com> wrote:
>
>> A foreign key is a key that points to the PK in another table.  
>> You're mixing keys with parent child relationships, which are defined 
>> through keys.  In a data warehouse, you put a bunch of keys in the 
>> central table, but in a regular database you put the parent PK into 
>> the child tables so they know their mommy,  The idea is to put the keys
where they are needed.
>>
>> Charlotte
>>
>>
>> On Fri, Aug 29, 2014 at 6:07 AM, Susan Harkins <ssharkins at gmail.com>
>> wrote:
>>
>> > I'll spend the morning rereading the book Martin and I wrote, 
>> > brushing
>> up
>> > on the normalization part. I've forgotten a lot of the basics. I'm
>> writing
>> > an animal tracing database in Access and I'm trying to remember if 
>> > it matters where the fk goes. Now, I remember its purpose and all 
>> > that,
>> but it
>> > would be so much simpler if I could just drop them all into the 
>> > main
>> table
>> > instead of adding a fk to all the child tables to the main table -- 
>> > I
>> think
>> > anyway.
>> >
>> > So, I've got a main table of animals and all of the remaining 
>> > tables are child tables of a sort and a few lookup tables. Is it 
>> > reasonable to just add a fk to all those child tables in my parent
table?
>> >
>> > I just don't remember. I haven't built a database in... 
>> > seriously... 10 years? It's been long enough that I'm really
struggling.
>> >
>> > Susan H.
>> > --
>> > AccessD mailing list
>> > AccessD at databaseadvisors.com
>> > http://databaseadvisors.com/mailman/listinfo/accessd
>> > Website: http://www.databaseadvisors.com
>> >
>> --
>> AccessD mailing list
>> AccessD at databaseadvisors.com
>> http://databaseadvisors.com/mailman/listinfo/accessd
>> Website: http://www.databaseadvisors.com
>>
>
>
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



More information about the AccessD mailing list