473,503 Members | 9,903 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Setting a Key to update cascading table

Hello All, I have a DB that have 6 tables - tblCreator, tblSummary,
tblPaper, tblProposition, tblContributor, tblPanel. The tables are
linked in the following way:
tblSummary is linked with tblProposition by ProposalID
tblCreator is linked with tblProposition by ProposalID
tblPanel is linked with tblPaper by PanelID
tblPaper is linked with tblContributor by PaperID

Their are two ways that a proposition is made:
1. A Creator proposes a Panel with several Papers and their
Contributors and Summaries.
2. An individual paper is proposed with a Summary and the Contributors.
A unique identifier (CreatorID) is assigned to each of the
propositions. Each paper is given a PaperID. Individual papers are
then combined to be in a panel and then each panel is given a PanelID.

Some contributors are on multiple panels. I want to assign a unique
identifer (ContributorID) to each contributor (author, co-author,
creator, etc...). I want to be able to set up the system such that
when I change any personal info on any given contributor it would
change in all tables where the contributor is mentioned. Please if you
understand what I'm trying to do, can you provide me with some help on
how to proceed. My VBA is limited but I'm learning fast.

Feb 28 '06 #1
6 1434
"dBNovice" <lu*****@hotmail.com> wrote in
news:11**********************@j33g2000cwa.googlegr oups.com:
Hello All, I have a DB that have 6 tables - tblCreator,
tblSummary, tblPaper, tblProposition, tblContributor, tblPanel.
The tables are linked in the following way:
tblSummary is linked with tblProposition by ProposalID
tblCreator is linked with tblProposition by ProposalID
tblPanel is linked with tblPaper by PanelID
tblPaper is linked with tblContributor by PaperID

Their are two ways that a proposition is made:
1. A Creator proposes a Panel with several Papers and their
Contributors and Summaries.
2. An individual paper is proposed with a Summary and the
Contributors. A unique identifier (CreatorID) is assigned to each
of the propositions. Each paper is given a PaperID. Individual
papers are then combined to be in a panel and then each panel is
given a PanelID.

Some contributors are on multiple panels. I want to assign a
unique identifer (ContributorID) to each contributor (author,
co-author, creator, etc...). I want to be able to set up the
system such that when I change any personal info on any given
contributor it would change in all tables where the contributor is
mentioned. Please if you understand what I'm trying to do, can
you provide me with some help on how to proceed. My VBA is
limited but I'm learning fast.


Can a paper have more than one author (i.e., Contributor)? If not,
then you already have what you want. Actually, just re-reading your
description, you do need to make a change. If there's only one
contributor per paper, then store ContributorID in tblPapter
(instead of storing PaperID in tblContributor). tblContributor will
be linked to as many papers as that contributor has written, and
that in turn is linked through tblPaper to the panel, which would
then get you the list of the people on the panel.

If papers can have multiple authors, then you need to remove
ContributorID from tblPaper and use a many-to-many join table
between tblPaper and tblContributor. That table would have two
columns, ContributorID and PaperID (assuming those are the primarky
keys of both tables), and you'd make the combination of those two
fields a compound primary key.

--
David W. Fenton http://www.dfenton.com/
usenet at dfenton dot com http://www.dfenton.com/DFA/
Mar 1 '06 #2
Thank you for your attempt to help. Let me see if I can clarify the
structure of the tables. tblPaper has one entry for each paper but
each paper can have multiple contributors. tblPanel has multiple
papers, and multiple contributors, tblCreator has one contributor. All
the contributors are listed in tblContributor.

Mar 1 '06 #3
"dBNovice" <lu*****@hotmail.com> wrote in
news:11**********************@e56g2000cwe.googlegr oups.com:
Thank you for your attempt to help. Let me see if I can clarify
the structure of the tables. tblPaper has one entry for each
paper but each paper can have multiple contributors. tblPanel has
multiple papers, and multiple contributors, tblCreator has one
contributor. All the contributors are listed in tblContributor.


That clarifies nothing at all, because you've haven't given the
relationships.

I would think that tblPanel would be the parent of tblPaper and
tblPaper the parent of a table that links to tblContributor. I'm not
sure what tblCreator is doing in there, unless tbleContributor is
the join table between tblPaper and tblCreator.

Put in plain language:

A panel can have multiple papers.

Each paper can have one or more contributors.

Thus, tblPanel is in a 1 to many relationship with tblPaper, with
PanelID stored as foreign key in tblPaper.

The question is how to handle the relationship between a paper and
the conributor(s). If you're allowing for more than one author, you
need a join table. I'd call it tblPaperCreator and it would have
PaperID and CreatorID (assuming that that's the table where you
store the names and so forth of the people who write the papers).
There's a 1 to many relationship on PaperID between tblPaper and
tblPaperCreator. Likewise, there's a 1 to many relationship on
CreatorID between tblCreator and tblPaperCreator.

That structure handles all the parts and requires no duplication of
information. In that structure, there is no purpose for
tblContributor, unless it is the name you give to your many-to-many
join table (what I called tblPaperCreator). I always name my join
tables so as to indicate exactly which entities are being joined. I
think having both tblContributor and tblCreator is confusing
terminology, and would use one or the other.

--
David W. Fenton http://www.dfenton.com/
usenet at dfenton dot com http://www.dfenton.com/DFA/
Mar 1 '06 #4
I'm sorry the names of the table are confusing. tblCreator is the
creator of the proposition -- either panel or paper (i will chg name to
tblProposalCreator). Although papers can be submitted individually;
ultimately they will be added onto a panel. But initially I have
panels and papers that all have contributors and those contributors
could be authors, creators, presenters, chairs, discussants. Because
the contributors are in different tables, I want to set up the DB such
that when I make a change to a contributor contact info in
tblContributor their corresponding info is updated in tblCreator,
tblPanel, tblPaper, etc...

Mar 2 '06 #5
"dBNovice" <lu*****@hotmail.com> wrote in
news:11**********************@j33g2000cwa.googlegr oups.com:
I'm sorry the names of the table are confusing. tblCreator is the
creator of the proposition -- either panel or paper (i will chg
name to tblProposalCreator). Although papers can be submitted
individually; ultimately they will be added onto a panel. But
initially I have panels and papers that all have contributors and
those contributors could be authors, creators, presenters, chairs,
discussants. Because the contributors are in different tables, I
want to set up the DB such that when I make a change to a
contributor contact info in tblContributor their corresponding
info is updated in tblCreator, tblPanel, tblPaper, etc...


There shouldn't be any information about the contributor except in
tblContributor. The only thing about contributors that you should be
storing in another table is the ContributorID.

That's the way relational databases work. You enter the information
about one thing in one record in one table and then link to that
record from all the other records that relate to it.

I would get rid of separate tables for authors, creators,
presenters, chairs and discussants -- they are all the same entity,
just differentiated by role, and should all be in a single table
(e.g., tblPerson). Then you can link them to the panel with a
many-to-many join table that has the PanelID, the PersonID and a
field that stores the role on the panel, i.e., author, creator,
presenter, chair or discussant.

You can tell that your multi-table model is flawed because you have
several tables with nearly identical structure, and because you may
need to enter data about the same person in more than one of the
tables.

I almost never have more than one table in any app that stores
information about people.

--
David W. Fenton http://www.dfenton.com/
usenet at dfenton dot com http://www.dfenton.com/DFA/
Mar 2 '06 #6
Thank you for your input. I didn't design the tables initially but I
am trying to streamline them to make them more efficient. I will work
on that this weekend and take your comments into consideration.

Mar 3 '06 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
2192
by: m3ckon | last post by:
Hi there, I'm a little stuck and would like some help I need to create an update trigger which will run an update query on another table. However, What I need to do is update the other...
14
4269
by: serge | last post by:
I have a scenario where two tables are in a One-to-Many relationship and I need to move the data from the Many table to the One table so that it becomes a One-to-One relationship. I need to...
5
1597
by: rdraider | last post by:
Hi all, I'm looking for a way to re-number inventory items. The items exist in 50+ tables, hundreds of fields and there are several thousand items. Maybe one table could hold the list of old &...
7
19380
by: robert | last post by:
i need to update a column which is a member of the PK on this table. there are some thousands of rows to be updated, many more thousand already in the table. so, i get a constraint violation...
33
4239
by: Lee C. | last post by:
I'm finding this to be extremely difficult to set up. I understand that Access won't manage the primary key and the cascade updates for a table. Fine. I tried changing the PK type to number and...
4
2301
by: Mike Dole | last post by:
I might have taken a wrong turn trying to do an update on a database the way I did but maybe somebody can help me out cause I'm stuck.. I have to update 12 tables in a database in a client...
2
1367
by: tdmailbox | last post by:
I have a relationship that I createed with a table and subtable in the relationship editor however the boxes to enable enforce referential integrity and cascading updates and deletes are disbabled....
18
18302
by: Dixie | last post by:
Can I set the Format property in a date/time field in code? Can I set the Input Mask in a date/time field in code? Can I set the Format of a Yes/No field to Checkbox in code? I am working on...
7
2404
by: PC Datasheet | last post by:
Looking for suggestions ---- A database was designed for a national automobile inspection program. In it's simplest form, the database has two tables: TblOwner OwnerID <Year/Make/Model owned...
0
7207
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7361
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
7015
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
5602
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
5026
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
4693
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
3183
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
1
749
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
403
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.