It still sounds to me like you have some normalization errors. This is
how I would approach it:
tblPeople -- contains information about people, whether alive
(minister, organist) or deceased
- PeopleID PrimaryKey - autonumber
- name
- birthdate
- date of death
- SSN
- etc
tblPeopleMilitaryDetails
- PeopleIDfk PrimaryKey - longInteger
- (military service details for the 30% of the deceased who served in
the military
This is the ONLY table that is related One-to-one with another table.
As an alternative, you could omit this table, and include all these
fields in the tblPeople, and leave them empty for the 70% of people
who did not serve in the military. Both approaches are valid.
tblMerchandise
- MerchandiseID - PK - autonumber
- MerchandiseTypeIDfk - longInteger - foreign key to Merchandise type
table
- CurrentPrice
- MerchandiseModel - text
- MerchandiseDetails - memo field - eg. inscription on headstone
tblMerchandiseType
- MerchandiseTypeID - PK - autonumber
- MerchandiseTypeName - eg. headstone, casket
Using this structure allows you the flexibility to add different
merchandise types in the future without altering the database
structure.
tblCemetary
- CemetaryID - PK - autonumber
- CemetaryName
- etc
tblCrematory
- CrematoryID - PK - autonumber
- CrematoryName
- etc
tblService
ServiceID - PK - autonumber
DeceasedPeopleIDfk - longInteger - foreign key to the people table to
record the identity of the person who has ceased
- MinisterPeopleIDfk - longInteger - foreign key to the people table
to record the identity of the minister
- organistPeopleIDfk - as above
- date
- CemetaryIDfk - which cemetary? leave it empty if no cemetary
- CrematoryIDfk - which crematory? leave it empty if no cremation
tblServiceMerchandise
- ServiceMerchandiseID - PK - autonumber
- ServiceIDfk - which service was this merchandise used for?
- MerchandiseIDfk - which merchandise was solde
- Price - what was the selling price of the merchandise
This last table is known as a "junction" table in a many-to-many
relationship between the tblService and the tblMerchandise. It allows
you to designate an arbitrary number of merchandise items to any
service, and to retain the actual selling price that was used at the
time.
This structure presumes that all services are held at one location, or
you do not care where the service was held. Depending on your business
model, that may or may not be valid. You could add another table for
service locations if required.
Thanks so much for responding Jack,
I didn't explain what each table was very well, so I will explain.
"Vitals" contains all the background info on the person who has died
(name, address, city, state, ss#, birthdate, etc. - used on every case)
Cemetery - (cemetery - name of cemetery, cemetery_city, Cemetery_State,
etc - used in 75% of the time)
Service - (time, place, type of service, minister, organist - used 100%
of the time)
Military - (served yes or no, branch, war, type of benefits, flag,
rank, headstone - used 30% of the time)
Crematory - (name of crematory, address, used 50% of the time)
Merchandise - (casket, vault, memorial cards, - used 100% of the time)
All of the above tables must store "historic" data - that is reflect
the information of that day and never change.
I have a bunch of Lookup table to supply the current information to my
form (casket costs, vault costs, minister names, ect..)
This is where I run into trouble. I have 6 tables linked in a "one to
one" relationship and make a form from then. Many times you enter data
before you meet with a family and only have a few items such as names,
ss# and address.
If I partially enter a case, and try to go back and edit it - I get
error.
What is the correct answer, 6 tables linked or one big table?
If 6 is right, then should I try to make one form or break them up into
their respective tables?
Thanks for your help,
Jake
**********************
(e-mail address removed)
remove uppercase letters for true email
http://www.geocities.com/jacksonmacd/ for info on MS Access security