I have a question that may be similar to the one which Margaret asked recently 
concerning the "Cost of Joins". I have a DB with numerous tables and have inserted 
keys to relate one table to another. The method minimizes the data I store, but 
results in me joining multiple tables, sometimes 10 at a time to retrieve information 
needed to satisfy a given search request.

A simple version of my DB would be:

Table one
        oneKey
        a
        c
        b

Table two
        twoKey
        oneKey-Foreign key
        e
        f
        g

Table three
        threeKey
        twoKey-Foreign key
        x
        y
        z

If I want to collect data concerning x, y, z and its relation to 'a' I need to join 
tables one, two and three. It seems to me this is the most efficient storage of 
information. It also, assuming the resulting queries return a large number of records, 
is the most efficient for end users when moving from record to record. Conversely, it 
also seems like it will be the most inefficient while waiting for the query results to 
be calculated?


I've noticed another solution proposed by some is to carry forward Foreign Keys. For 
instance:
Table one
        oneKey
        a
        c
        b

Table two
        twoKey
        oneKey-Foreign key
        e
        f
        g

Table three
        threeKey
      oneKey-Foreign key
        twoKey-Foreign key
        x
        y
        z 

In this case collecting the same information (x, y, z and its relation to 'a') I need 
only join tables one and three or just three and do look-ups into table one. 
Obviously, the issue scales if you add 10 tables into the equation. 

This method appears less efficient from a data storage perspective and complicates the 
application. I need to store multiple Foreign keys each time a record is added to a 
given table. The time to return query results would appear to be very short as each 
query would only return a single record, but the record to record movement would 
result in a new query each time.

What advantages or disadvantages are there to one method vs. another?

Bob

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to