D
Deb Smith
The following are 5 tables from a larger data base that as a start, I want
to ensure are normalized and/or are structured to provide maximum
flexibility.
I thought this data base was almost finished (80% completed), but the
end-user has now requested that additional information and features be
added. This is causing me many problems. I therefore am back at the
beginning trying to make sure the database is structured appropriately. Once
I know this, at least I will be able to separate out my inexperience in
designing queries, forms, coding, etc, vs issues with the overall database
design.
Input, advice, suggestions, criticisms, anything regarding this structure.
would be greatly appreciated.
tblPerson
- PersonID (PK- autonumber)
- LName
- FName
- MailingListNameID (FK - tblMailList.MailingListNameID)
There are other fields in tblPerson that are FK to other tables, but I am
not sure they are relevant at this time
tblMailList
- MailingListNameID (PK-autonumber)
- MailingListName1 (txt)
- Selected (Yes/No)
tblEventMailList
- MailingListNameID (compositePK- tblMailList.MailingListNameID)
- EventID (compositePK -tblEventInfo.EventID)
- PersonID (FK - tblPerson.PersonID)
- Invited (Y/N)
- NumberInvited(Number)
- LabelRequired (Y/N)
tblAttendance
- EventID (compositePK -tblEventInfo.EventID)
- PersonID (compositePK - tblPerson.PersonID)
- MailingListNameID (FK - MailingListName
tblEventInfo
- EventID (PK -autonumber)
- EventDate (date)
- OccassionID (FK -tblOccassionType.OccassionID)
- EventActivityID (FK - tblEventActivity.EventActivityID)
- EventLocationID (FK - tblEventLocation.EventLocationID)
- Details (txt)
Other background info.
The person table is used to collect basic information about the individual.
Since more than one person can share a mailing list name, a separate table
was created called MailList. (For example; Jane Doe PersonID 1 and John Doe
PersonID2 can share the MailListName Mr. and Mrs. John Doe. Jane and John
Doe would obviously share MailingListName1.
I need a means to link people, mailing list names and events together and
then to generate a mailinglist and labels. I therefore created tbl
EventMailList. EventMailList is a junction table that links tblMailList and
tblEventInfo both in a one to many relationship since there can be many
events that a mailinglist name can be included/invited to.
TbleAttendance is used to track attendance status of each individual invited
to an event.
Thanks to all for providing input.
to ensure are normalized and/or are structured to provide maximum
flexibility.
I thought this data base was almost finished (80% completed), but the
end-user has now requested that additional information and features be
added. This is causing me many problems. I therefore am back at the
beginning trying to make sure the database is structured appropriately. Once
I know this, at least I will be able to separate out my inexperience in
designing queries, forms, coding, etc, vs issues with the overall database
design.
Input, advice, suggestions, criticisms, anything regarding this structure.
would be greatly appreciated.
tblPerson
- PersonID (PK- autonumber)
- LName
- FName
- MailingListNameID (FK - tblMailList.MailingListNameID)
There are other fields in tblPerson that are FK to other tables, but I am
not sure they are relevant at this time
tblMailList
- MailingListNameID (PK-autonumber)
- MailingListName1 (txt)
- Selected (Yes/No)
tblEventMailList
- MailingListNameID (compositePK- tblMailList.MailingListNameID)
- EventID (compositePK -tblEventInfo.EventID)
- PersonID (FK - tblPerson.PersonID)
- Invited (Y/N)
- NumberInvited(Number)
- LabelRequired (Y/N)
tblAttendance
- EventID (compositePK -tblEventInfo.EventID)
- PersonID (compositePK - tblPerson.PersonID)
- MailingListNameID (FK - MailingListName
tblEventInfo
- EventID (PK -autonumber)
- EventDate (date)
- OccassionID (FK -tblOccassionType.OccassionID)
- EventActivityID (FK - tblEventActivity.EventActivityID)
- EventLocationID (FK - tblEventLocation.EventLocationID)
- Details (txt)
Other background info.
The person table is used to collect basic information about the individual.
Since more than one person can share a mailing list name, a separate table
was created called MailList. (For example; Jane Doe PersonID 1 and John Doe
PersonID2 can share the MailListName Mr. and Mrs. John Doe. Jane and John
Doe would obviously share MailingListName1.
I need a means to link people, mailing list names and events together and
then to generate a mailinglist and labels. I therefore created tbl
EventMailList. EventMailList is a junction table that links tblMailList and
tblEventInfo both in a one to many relationship since there can be many
events that a mailinglist name can be included/invited to.
TbleAttendance is used to track attendance status of each individual invited
to an event.
Thanks to all for providing input.