Ok, I haven't been doing too much database work lately and my brain has gone
soft.
I need some help with proper structure.
My database is being used to track television shows.
Any given show will be associated with at least one production company (call
it ProdCo) but possibly up to 3 production companies (never more than that).
I have:
tblNetwork
NetID (numeric, Identity)
NetName (char, 50)
tblShowData
BookingNum (numeric, Identity)
BookingNumExt (numeric, Identity)
Now, if I was just dealing with one ProdCo I would add it tblShowData as a
foreign key from tblNetwork; no problem.
How do I structure it so that I can combine 1 to 3 ProdCo's as one reference
in tblShowData.
I tried:
tblNetworkCombo
ID (numeric, Identity)
Net1
Net2
Net3
The problem is, obviously I can only join the FK from tblNetworks to one of
the NetX fields in tblNetworkCombo.
I don't quite know where to go from here. Any help would be appreciated. 3 1249
"Jake Jessup" <wa*********@hotmail.com> wrote in message news:xyplc.46660$Qy.28399@fed1read04... Ok, I haven't been doing too much database work lately and my brain has gone soft.
I need some help with proper structure.
My database is being used to track television shows.
Any given show will be associated with at least one production company (call it ProdCo) but possibly up to 3 production companies (never more than that).
I have:
tblNetwork NetID (numeric, Identity) NetName (char, 50)
tblShowData BookingNum (numeric, Identity) BookingNumExt (numeric, Identity)
Now, if I was just dealing with one ProdCo I would add it tblShowData as a foreign key from tblNetwork; no problem.
How do I structure it so that I can combine 1 to 3 ProdCo's as one reference in tblShowData.
I tried:
tblNetworkCombo ID (numeric, Identity) Net1 Net2 Net3
The problem is, obviously I can only join the FK from tblNetworks to one of the NetX fields in tblNetworkCombo.
I don't quite know where to go from here. Any help would be appreciated.
Create an associative entity that resolves the M:M relationship between shows and nets.
CREATE TABLE tblShowNetwork(
BookingNum numeric not null
REFERENCES tblShowData (BookingNum)
ON UPDATE RESTRICT
ON DELETE CASCADE,
NetID numeric not null,
REFERENCES tblNetwork (NetID)
ON UPDATE RESTRICT
ON DELETE CASCADE,
primary key( BookingNum, NetID )
;
Paul Horan
VCI Springfield, MA
We're in the TV business as well - we offer an industry-leading Sales, Traffic, and Billing system for TV/Cable
networks.
I think what you really want is three tables.
Two of the tables should be entity tables, and the last one should be
a relationship table:
(I use the convention "dbe_" for database entity and "dbr_" for
database relation).
For the sake of simplicity, I have not checked the code to ensure it
works:
---------------------------------------------------------
CREATE TABLE dbe_productionCompanies(
pcId int,
pcName varchar(64)
)
CREATE TABLE dbe_shows(
showId int,
showName varchar(64)
)
CREATE TABLE dbr_showProductionCompanies(
showId int,
pcId int,
CONSTRAINT FK_showProductionCompanies_REF_productionCompanies
FOREIGN KEY (pcId)
REFERENCES dbe_productionCompanies(pcId)
ON UPDATE NO ACTION
ON DELETE CASCADE,
CONSTRAINT FK_showProductionCompanies_REF_shows
FOREIGN KEY (showId)
REFERENCES dbe_shows(showId)
ON UPDATE NO ACTION
ON DELETE CASCADE,
CONSTRAINT PK_showProductionCompanies
PRIMARY KEY (showId, pcId)
)
---------------------------------------------------------
To select the names of the production companies for a given show, you
would use the following query:
SELECT pcs.pcName
FROM dbr_showProductionCompanies AS spc
JOIN dbe_productionCompanies AS pcs ON spc.pcId = pcs.pcId
WHERE spc.showId = <<<ANY_ID>>>
This should return a resultset with up to 3 matches and no more. Each
of the matches should be unique since there is a primary key
constraint on the two fields so that no duplicate fields are entered.
What you are really specifying is a one-to-many many relationship
between show and production companies. Being that it is one to many,
the most efficient way to manage the relationship (unless the join is
large) is to break it up into the entities and a relationship table
(at least this is what I have been taught).
Play around with some of your sample data to see how well those
foreign key dependencies work for you; you may not want the cascading
behavior.
Good luck.
I got it figured out. You helped out a lot. Thanks!
"Charles Chen" <c.****@charliedigital.com> wrote in message
news:56**************************@posting.google.c om... I think what you really want is three tables.
Two of the tables should be entity tables, and the last one should be a relationship table:
(I use the convention "dbe_" for database entity and "dbr_" for database relation).
For the sake of simplicity, I have not checked the code to ensure it works:
--------------------------------------------------------- CREATE TABLE dbe_productionCompanies( pcId int, pcName varchar(64) )
CREATE TABLE dbe_shows( showId int, showName varchar(64) )
CREATE TABLE dbr_showProductionCompanies( showId int, pcId int, CONSTRAINT FK_showProductionCompanies_REF_productionCompanies FOREIGN KEY (pcId) REFERENCES dbe_productionCompanies(pcId) ON UPDATE NO ACTION ON DELETE CASCADE, CONSTRAINT FK_showProductionCompanies_REF_shows FOREIGN KEY (showId) REFERENCES dbe_shows(showId) ON UPDATE NO ACTION ON DELETE CASCADE, CONSTRAINT PK_showProductionCompanies PRIMARY KEY (showId, pcId) ) ---------------------------------------------------------
To select the names of the production companies for a given show, you would use the following query:
SELECT pcs.pcName FROM dbr_showProductionCompanies AS spc JOIN dbe_productionCompanies AS pcs ON spc.pcId = pcs.pcId WHERE spc.showId = <<<ANY_ID>>>
This should return a resultset with up to 3 matches and no more. Each of the matches should be unique since there is a primary key constraint on the two fields so that no duplicate fields are entered.
What you are really specifying is a one-to-many many relationship between show and production companies. Being that it is one to many, the most efficient way to manage the relationship (unless the join is large) is to break it up into the entities and a relationship table (at least this is what I have been taught).
Play around with some of your sample data to see how well those foreign key dependencies work for you; you may not want the cascading behavior.
Good luck. This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: dmb000006 |
last post by:
Hello,
I have a database style data structure, each record has several
fields.
I would like to create a nested data structure that would let me
'query' the data on the value of certain...
|
by: Jeff |
last post by:
I've created a beast! Here is my data structure:
$VAR1 = 'bunkers';
$VAR2 = {
'items' => ,
\
]
};
$VAR3 = 'simpsons';
$VAR4 = {
|
by: Santah |
last post by:
hi
I'm new to C++
and I'm currently working on Visual C++ 6.0
I'm trying to open a text file, and read some data from it
part of the text file looks like this:
--------
|
by: Fabian Kr?ger |
last post by:
Hello,
I got a weird problem and need your help and ideas...
I´ve written an php application which imports data in XML format and
writes this data to a MySQL database to have a faster access....
|
by: yee young han |
last post by:
I need a fast data structure and algorithm like below condition.
(1) this data structure contain only 10,000 data entry.
(2) data structure's one entry is like below
typedef struct _DataEntry_...
|
by: Laphan |
last post by:
Hi All
Wonder if you could help, I have a bog standard table called STOCKPRICES
that has served me well for a while, but now I need to change the structure
of it and because a number of users...
|
by: Dan |
last post by:
I'm trying to creat a data structure, that can be either a integer,
double, string, or linked list. So I created the following, but don't
know if it is the data structure itself causing problems,...
|
by: Alfonso Morra |
last post by:
Hi,
I am writing a messaging library which will allow me to send a generic
message structure with custom "payloads".
In many cases, a message must store a non-linear data structure (i.e....
|
by: Charles Law |
last post by:
Here's one that should probably have the sub-heading "I'm sure I asked this
once before, but ...".
Two users are both looking at the same data, from a database. One user
changes the data and...
|
by: mirandacascade |
last post by:
Assume the following:
1) multi-user environment
2) when user opens app, want to run some code that retrieves some
information specific to the user...retrieving this information is
somewhat i/o...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: aa123db |
last post by:
Variable and constants
Use var or let for variables and const fror constants.
Var foo ='bar';
Let foo ='bar';const baz ='bar';
Functions
function $name$ ($parameters$) {
}
...
|
by: ryjfgjl |
last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
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...
| |