I'm building a database and am a bit stumped about how to construct/link tables. I will describe the current configuration, then present the problem I am trying to solve. Currently:
I currently have a table called tblSeries. This table holds information about a time series of data, and how that data should be displayed. It has a SeriesDataID field that will link to another table (tblSeriesData) that contains information about the name of the time series and where that time series is stored etc. It also has fields about how the data should be displayed (for example, as lines or bars, whether or not to flip the y axis etc.). The field summary is below. - tblSeries:
-
SeriesID (key), SeriesDataID, LineOrBar, FlipAxis
-
-
tblSeriesData:
-
SeriesDataID (key), Name, WebAddress
This allows me to easily switch the data for a particular Series, and also separate the definition of how the data should be displayed (tblSeries) from the definition of the data (tblSeriesData). The Problem
The problem I am having is that the Data Series can come from two locations; either the web or another database. If it is the web, a web address will point to the data location. If it is another database, a database path and table name will point to the data location.
I therefore have two types of SeriesData: - tblSeriesDataWeb:
-
SeriesDataID (key), Name, WebAddress
-
-
tblSeriesDataDatabase:
-
SeriesDataID (key), Name, DatabasePath, TableName
I am not sure how to relate these two SeriesData tables to the tblSeries table. My current thought is a structure like this: -
tblSeries:
-
SeriesID (key), SeriesDataType, SeriesDataID, LineOrBar, FlipAxis
where the new field [SeriesDataType] specifies whether it is Web or Database, and the SeriesDataID points to the correct item in the relevant SeriesData table. The Question
This is the part that is stumping me. How do point/relate to one or another table, based on an entry in a particular record?
For example:
The first record in tblSeries below defines one set of SeriesData (id = 23) that is found in the tblSeriesDataWeb table. The second record has SeriesData that is defined in tblSeriesDataDatabase (id = 45). - tblSeries:
-
SeriesID (key), SeriesDataType, SeriesDataID, LineOrBar, FlipAxis
-
1, Web, 23, Line, True
-
2, Database, 45, Bar, True
-
-
tblSeriesDataWeb:
-
SeriesDataID (key), Name, WebAddress
-
23, "A data series from the web", "www.dataseries.com"
-
-
tblSeriesDataDatabase:
-
SeriesDataID (key), Name, DatabasePath, TableName
-
45, "A data series from another database", "C:/database.mdb", "tblName"
I have considered combining the two SeriesData tables, but this seems like poor design as they are essentially different objects, and combining them will create a lot of redundancy in the table.
I hope I have describe this adequately, and I would love to hear any suggestions.
7 3858
There are many ways to do this, but I think I would organize the data a little differently. It seems like you have: tblSeriesData
SeriesID (key)
Name
DataType
LineOrBar
FlipAxis
LocationType - "Web" or "Database" tblWebLocations
SeriesID
WebAddress tblDatabaseLocations
SeriesID
DatabasePath
TableName
This way when you look up a series, you can easily get it's location type and process appropriately.
Yep, ChipR, that does make sense. I'll try implementing that and see how it goes. Thanks.
I've realized a problem with the proposed solution. I should have mentioned that the WebLocations and DatabaseLocations should be unique and therefore not repeated. Multiple Series can have the same DatabaseLocation or WebLocation. In this case, the only way the above solution would work would be to repeat the definition for the locations.
Maybe the way to explain this is to say there are well defined and unique web and database locations: tblWebLocations
WebLocationID
WebAddress tblDatabaseLocations
DataBaseLocationID
DatabasePath
TableName
And then there a multiple series that should reference one of the above locations: tblSeries
SeriesID (key)
Name
DataType
LineOrBar
FlipAxis
<Something else here?>
I'm still not sure how to achieve this...
Perhaps this would work: tblWebLocations
WebLocationID
Name
WebAddress tblDatabaseLocations
DataBaseLocationID
Name
DatabasePath
TableName
Then a union query, combining the above tables qryLinkLocations
LinkLocationID (not sure how to create this in a UNION query!)
Name
LocationType (either Web or DataBase)
LocationID
And then the Series table that references the query through LinkLocationID tblSeries
SeriesID (key)
Name
DataType
LineOrBar
FlipAxis
LinkLocationID
In that case, I would lean toward: tblSeries
SeriesID (key)
Name
DataType
LineOrBar
FlipAxis
LocationID tblLocations
LocationID (key)
LocationType
Location - holds web address or path
TableName - null if web location
Some storage space is wasted with nulls, but that shouldn't be a major concern.
I could do that, but I presented simplified Location tables - there are more fields than the few I mentioned, and hence more nulls.
I guess I could just have a linking table between Series and the Locations that contained each of the unique Location IDs (rather than the query)?
This would be the resulting relationship layout...
Had to chew on this over lunch. Here, I believe, is the correct solution. tblSeriesData
SeriesID (key)
Name
DataType
LineOrBar
FlipAxis
WebLocationID (one or the other)
DatabaseLocationID (may be null)
(optional) LocationType - "Web" or "Database" tblWebLocations
LocationID
WebAddress tblDatabaseLocations
LocationID
DatabasePath
TableName
Sign in to post your reply or Sign up for a free account.
Similar topics
by: Dafella |
last post by:
The following is code from Xeoport.
It is suppose to access my pop3 account and load email into Mysql
database.
It's not inserting and there is no log or anything to tell me why.
Here is the...
|
by: Jeremy Weiss |
last post by:
I'm trying to build a database that will handle the monthly billing needs of
a small company. I'm charting everything out and here's what I see:
table for customers
sub table to track payments...
|
by: Andrew Arace |
last post by:
I scoured the groups for some hands on code to perform the menial task
of exporting table data from an Access 2000 database to Oracle
database (in this case, it was oracle 8i but i'm assuming this...
|
by: doomx |
last post by:
I'm using SQL scripts to create and alter tables in my DB
I want to know if it's possible to fill the description(like in the
Create table UI) using these scripts.
EX:
CREATE TABLE(...
|
by: David |
last post by:
Hi,
Could someone please xplain how to add a field to an existing SQL table in
VB.Net
I have added the field in the Server Explorer and it shows up when I reload
the program
but I cannot...
|
by: alexandre.brisebois |
last post by:
Hi, I am using access 2003, I would like to know if there is an option
to reorganize the tables in a maner that is readable, as we can do in
sql sever 2000 or 2005.
I have been given a database...
|
by: mcmahonb |
last post by:
Hello people,
I'm fairly new to access and DB programming in general. I am familiar with the "basics" of MS Access, forms, tables, queries, macros, and such, but still don't have everything down...
|
by: etuncer |
last post by:
Hello All,
I have Access 2003, and am trying to build a database for my small
company. I want to be able to create a word document based on the data
entered through a form. the real question is...
|
by: Sam |
last post by:
Hi,
I have one table like :
MyTable {field1, field2, startdate, enddate}
I want to have the count of field1 between startdate and enddate, and
the count of field2 where field2 = 1 between...
|
by: provor |
last post by:
Hello,
I have the following code that I am using when a user presses a button to import an excel file into a table. The code is hard coded to point to the correct table. This works great for this...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
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: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
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,...
|
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: 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...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
| |