[postgis-users] extending a database with another table

Kirk R. Wythers kwythers at umn.edu
Thu Nov 16 05:47:11 PST 2006


Thanks for your patience Jan.

krw

On Nov 15, 2006, at 8:01 AM, Jan Syryn wrote:

> Your question has nothing to do with PostGis problems, but is merely a
> general DB design problem.
>
> But because we are all nice guysz all together:
>
> Don't add a table 'airports'.
> Just extend station with a column stationtype_id(char 1) that  
> points (fk) to
> another table
> 'stationtype'.
> Stationtype with id(char1) and stationtype_name(varchar(20))
> Fill it with ('S' ; 'Station') and ('A', 'Airport')
>
> Problem solved.
>
> You want solar and climate for airports:
>   SELECT climate.*, solar.*
>   FROM climate,solar,station
>   WHERE climate.station_id = station.station_id
>   AND solar.station_id = station.station_id
>   AND station.stationtype_id='A'
>
> Replace 'A' by 'S' for stations.
>
> -----Original Message-----
> From: postgis-users-bounces at postgis.refractions.net
> [mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of  
> Kirk R.
> Wythers
> Sent: mardi 14 novembre 2006 21:49
> To: PostGIS Discussion Users
> Subject: [postgis-users] extending a database with another table
>
> I am looking for suggestions on database design.
>
> I have a simple three table database that holds climate data. The  
> first
> table (stations) holds station id, and geoposition information.
> The second table (climate) holds temp and precip information, and  
> the third
> table (solar) holds solar radiation data. The column station_id  
> acts as a
> foreign key to link the tables.
>
> My trouble is that I need to add a forth table (airports) that in  
> the same
> manner as "stations" in that it contains a station_id number, on  
> which data
> lines from "solar" and "climate" key off of. The goal here is to be  
> able to
> differentiate solar data from airports and solar data from the  
> stations.
>
> Below are the three current tables (stations, climate, and solar).
> Any ideas would be most appreciated.
>
> met_data=# \d stations
>               Table "public.stations"
>       Column      |       Type        | Modifiers
> -----------------+-------------------+-----------
> station_id      | integer           | not null
> station_name    | character varying |
> state           | character varying |
> lat             | double precision  |
> lon             | double precision  |
> the_geom_lonlat | geometry          |
> the_geom_meters | geometry          |
> Indexes:
>      "stations_pkey" PRIMARY KEY, btree (station_id)
>      "stations_station_id_key" UNIQUE, btree (station_id) Check  
> constraints:
>      "enforce_dims_the_geom_lonlat" CHECK (ndims(the_geom_lonlat) = 2)
>      "enforce_dims_the_geom_meters" CHECK (ndims(the_geom_meters) = 2)
>      "enforce_geotype_the_geom_lonlat" CHECK (geometrytype
> (the_geom_lonlat) = 'POINT'::text OR the_geom_lonlat IS NULL)
>      "enforce_geotype_the_geom_meters" CHECK (geometrytype
> (the_geom_meters) = 'POINT'::text OR the_geom_meters IS NULL)
>      "enforce_srid_the_geom_lonlat" CHECK (srid(the_geom_lonlat) =  
> 4269)
>      "enforce_srid_the_geom_meters" CHECK (srid(the_geom_meters) =
> 32661)
>
>
> met_data=# \d climate
>        Table "public.climate"
>     Column   |   Type   | Modifiers
> ------------+----------+-----------
> station_id | integer  |
> year       | smallint |
> month      | smallint |
> day        | smallint |
> doy        | smallint |
> date       | date     |
> precip     | real     |
> tmin       | real     |
> tmax       | real     |
> Foreign-key constraints:
>      "climatefk" FOREIGN KEY (station_id) REFERENCES stations
> (station_id)
>
> met_data=# \d solar
>         Table "public.solar"
>     Column   |   Type   | Modifiers
> ------------+----------+-----------
> station_id | integer  |
> year       | smallint |
> month      | smallint |
> day        | smallint |
> doy        | smallint |
> date       | date     |
> solar      | real     |
> Foreign-key constraints:
>      "solarfk" FOREIGN KEY (station_id) REFERENCES stations 
> (station_id)
>
>
>
>
>
>
>
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users




More information about the postgis-users mailing list