Hi, Shawn,

Thanks for replying. What i meant is that i would also like to create a
table with "site types", where i would have a listing of possible sites,
like arqueology, natural, etc. and maybe use it to redirect the queries
instead of having to hardcode the table name when i need to list a specific
type of site. :-)

site_types
id_site_type
name

this table would have:
1 arqueology
2 natural
3 generic
...

how could i use this to be able to query dynamically? Maybe use the field
"id_site_type" in the table "sites" as a link?

Thanks.

Pag


PS - Shawn, forgive the duplicate email. I replied only to you first,
instead of all.



On Mon, Jul 12, 2010 at 4:37 PM, Shawn Green (MySQL) <
shawn.l.gr...@oracle.com> wrote:

> 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
>

Reply via email to