I have a fairly simple database design with a series of tables that reference 
graphical data.  Currently, there is one table that contains the following:

CREATE TABLE polygons (id INTEGER PRIMARY KEY, externalref INTEGER, pointcount 
INTEGER, pointlist BLOB)

When I insert data to this table, I have to write a binary list of x,y 
coordinates in a sequential memory region before storing in the database.  
Getting information back from the database requires a conversion in the 
opposite direction.  Typically these lists contain 10-20 points, so they are 
not very large.

This currently works, but I'm wondering if it would be better to create a new 
table for the points and reference the polygon primary key:

CREATE TABLE pointlist (polyid INTEGER, x INTEGER, y INTEGER)

On average, I'm managing 50000+ polygons, so the pointlist could exceed 1 
million entries very easily.  Points are not shared between polygons.

Does anyone have a recommendation as to which solution would be more optimal, 
both for space and processing time?  In a worst case scenario, I could insert 
over 1 million polygons, resulting in a max 20 million point list table.

Thanks,
John


Reply via email to