On 7/8/2010 11:29 PM, Miguel Vaz wrote:
Hi,

I am having some uncertainty while designing the following structure:

I have two sets of data:

* arqueology sites (can be natural):

id
name
description
id_category
id_period
x
y


* natural sites (can be arqueological also - bear with me -, so there will
be duplicate records in the above table and this):

id
name
description
altitude
x
y

and i would like to put these two "sites" in the same data set and maybe add
a new table called "site types" to categorize each record (maybe a relation
table to allow many to many): how can i go about doing it? is this solution
decent enough:

* sites (generic):

id_site
name
description
x
y


* site_natural
id
id_site
altitude

* site_arqueology
id
id_site
id_category
id_period

But i seem to be missing something. How can i have this in a way that its
easy to list only "arqueology sites" for example. I feel the solution is
simple enough, even for me, but its eluding me. Any help in the right
direction would be very appreciated.


You have done a nice job at normalizing. All of you sites are tagged and identified in one table then specific differentiating details are stored in separate tables.

When you ask about listing only the "arqueology sites" that's just a simple query:

SELECT * from site_arqueology inner join sites on sites.id_site = site_arqueology.id_site

I can't see where your problem is. Can you provide some additional details?

--
Shawn Green
MySQL Principle Technical Support Engineer
Oracle USA, Inc.
Office: Blountville, TN

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to