Why put the images in the database at all? If you leave them on disk and put a 
relative path into postgres, you can host them anywhere using apache and the 
client can fetch them via url.

charles

On Mar 8, 2011, at 6:32 AM, Paragon Corporation wrote:

> 300 is nothing.  For simplicity especially if it is a 1 to 1 relationship, I 
> would keep it in a single table.
>  
> If you do plan to have multiple pictures per turbine like different side 
> views, then you would keep the pictures in a separate table.
>  
> What Leo was talking about when he said painful was if you are updating 
> millions of records at once.  One record here and there or even 500 records 
> at once is not that big of a deal.  All that would be completed in a flip of 
> an eyelid.
>  
> I would also use bytea type for picture storage than OID (LOID).  I think the 
> non-bytea way is considered deprecated these days and suffers from the 
> problem that you have to delete the data separately from the record otherwise 
> you get orphaned objects.  I think the bytea way is also easier for most 
> applications to read.
>  
> The Oversized-Attribute Storage Technique (TOAST) is a side topic -- really a 
> behind the scenes implementation detail that PostgreSQL uses to get over its 
> 8kb page size limit.  Has nothing to do with data type choice.  You don't 
> usually need to think about it much whether your data is using TOAST or not 
> except when really bad things happen like one of the toast tables becomes 
> corrupt. (which usually signals disk failure anyway).
>  
> Hope that helps,
> Regina
> http://www.postgis.us
>  
> 
> From: postgis-users-boun...@postgis.refractions.net 
> [mailto:postgis-users-boun...@postgis.refractions.net] On Behalf Of Robert 
> Buckley
> Sent: Tuesday, March 08, 2011 3:20 AM
> To: PostGIS Users Discussion
> Subject: Re: [postgis-users] images in postgresql
> 
> Thanks for all the replies.
> 
> My Wind turbine table will only have around 300 - maximum 500 points. The 
> photos shouldn´t change until either a turbine vanishes or gets repowered 
> (ie. upgraded).
> 
> I am pretty new to postgis so when you all start talking about TOAST I start 
> thinking about food rather than data formats. TOAST, Large blob, OID...how do 
> I decide? As the images will be (hopefully) displayed over the web and they 
> shouldn´t be more than 50 kb each. They are simply there to display a nice 
> picture when someonw clicks on the map. 
> 
> The table will however be updated with new turbines and we will certainly 
> find errors so that some will have to be deleted or moved.
> 
> Would it be easier to keep them all in one table rather than in separate 
> tables?
> 
> yours,
> 
> Rob
> 
> 
> Von: Paragon Corporation <l...@pcorp.us>
> An: PostGIS Users Discussion <postgis-users@postgis.refractions.net>
> Gesendet: Dienstag, den 8. März 2011, 6:00:00 Uhr
> Betreff: Re: [postgis-users] images in postgresql
> 
> Ben,
>  
> My understanding is the same (as long as you don't select the column that is) 
> otherwise has to be detoasted. As I recall, I think a small bit will be 
> stored and then the rest that doesn't fit into (I can't recall maximum 
> space), gets chunked into toast records.
>  
> Its true for most of the databases I've worked with - e.g. large text or 
> blobs just the pointer is stored in the main table, except PostgreSQL makes 
> this decision conditionally on size and other databases make it beforehand 
> based on data type.
>  
> However -- UPDATES will be painful I think because even though the data is 
> toasted, PostgreSQL will still create an MVCC copy of the whole record when 
> doing updates and slushing around big pictures and geometries can be painful. 
>  So if your other wind turbine info gets changed more often than the photos, 
> I would keep them separate.
>  
>  
> Leo
> http://www.postgis.us
>  
> 
> From: postgis-users-boun...@postgis.refractions.net 
> [mailto:postgis-users-boun...@postgis.refractions.net] On Behalf Of Ben Madin
> Sent: Monday, March 07, 2011 8:31 PM
> To: PostGIS Users Discussion
> Subject: Re: [postgis-users] images in postgresql
> 
> Robert,
> 
> On 06/03/2011, at 4:28 PM, Robert Buckley wrote:
> 
>> The windturbine table exists in EPSG:4326. I made a seperate table for the 
>> images because I didn´t wan´t to blow the size of the wind turbine table out 
>> of proportion and jeopardize performance.
> 
> My understanding - and if I'm wrong I need to know(!) - is that the sort of 
> data you are talking about (large geometries or blobs - for your pictures) 
> are not stored in the primary table, but in associated storage space, known 
> as TOAST tables. 
> 
> This has important implications for indexing, but is brilliant because the 
> content of these data fields does not directly impact on the number of pages 
> that the table takes, hence rapid searching is still possible.
> 
> cheers
> 
> Ben
> 
> 
> 
> 
>> 
>> I am making a simple application to show wind turbines as wms and I wanted 
>> to show the turbine in a popup. I´m not sure how to get the popup to display 
>> though.
>> 
>> Any examples?
>> Thanks,
>> 
>> Rob
>> 
>> 
>> Von: Paragon Corporation <l...@pcorp.us>
>> An: PostGIS Users Discussion <postgis-users@postgis.refractions.net>
>> Gesendet: Samstag, den 5. März 2011, 18:21:49 Uhr
>> Betreff: Re: [postgis-users] images in postgresql
>> 
>> Robert,
>>  
>> Is there a reason why you have the points in a separate table or do you have 
>> points in both tables and you want to relate by a spatial join?
>>  
>>   If its a 1 to 1 relationship, we would just put them in the same table.
>>  
>> As far as foreign keys go, you should have some identifier the same in the 
>> two tables.  Do you? 
>>  
>> So it would be of the form
>>  
>> SELECT wt.wt_id, wt.geom, p.picture
>> FROM windturbines As wt INNER JOIN pictures As p ON wt.wt_id = p.wt_id
>>  
>> or if they are spatially related by space
>>  
>>  
>> SELECT wt.wt_id, wt.geom, p.picture
>> FROM windturbines As wt INNER JOIN pictures As p ON ST_DWithin(wt.geom, 
>> pt.geom, 10)
>>  
>>  
>> The 10 depends on the spatial reference system or if you are using geography 
>> type then it means 10 meters.  So I'm treating the wind turbine location and 
>> picture location as the same if they are within 10 meters apart.
>>  
>> BTW: you might want to read the first chapter of our upcoming book.  It's a 
>> free download and answers this type of question with concrete examples.
>> http://www.postgis.us/chapter_01
>>  
>> Leo
>> http://www.postgis.us
>>  
>>  
>> 
>> From: postgis-users-boun...@postgis.refractions.net 
>> [mailto:postgis-users-boun...@postgis.refractions.net] On Behalf Of Robert 
>> Buckley
>> Sent: Saturday, March 05, 2011 5:39 AM
>> To: postgis-users@postgis.refractions.net
>> Subject: [postgis-users] images in postgresql
>> 
>> Hi,
>> 
>> I am just experimenting at the moment with a project and could do with some 
>> advice.
>> 
>> I have created a database which contains photos of Windturbines.  I also 
>> have a postgis database with the locations (points) of the wind turbines and 
>> would like join the photos to the points via a link table or foreign key.
>> 
>> As you can tell, I haven´t too much experience with postgresql and 
>> relational database design. But i can imagine that the task should not be 
>> too difficult.
>> 
>> I am just a bit unsure how to go about it. The photos are on the linux 
>> server and the creation of the table and the insert of the image was 
>> successfull. But how do i get the  join and how would I display this photo 
>> in a geoext project?
>> 
>> thanks for any tips,
>> 
>> Robert

_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to