NYCPHP Meetup

NYPHP.org

[nycphp-talk] DB Differences

inforequest sm11szw02 at sneakemail.com
Fri Jun 18 10:15:42 EDT 2004


Mark Armendariz nyphp-at-enobrev.com |nyphp 04/2004| wrote:

>Looking for a professional developer's opinion...
>
How about a developer/development project director's opinion?

Based on my (somewhat cynical view of ) experience dealing with people 
who have a "good Access database" and "need someone to put it onto the web":

- they will not listen to your reasons for changing the Access database 
at this time.
- they will not learn "in real time" from your own database design/work
- they *will* likely change their own schema at some point (because they 
will learn and improve - and while it may be an improvement, it will not 
match yours)

So if these are likely, you really need to abstract your interface to 
their data and make a clear specification for what they will have to 
provide to you for updates. If you get to do this unilaterally, good for 
you. Get that spec approved in writing so everyone has an obligation to 
meet it (otherwise they may decide to change it and simply expect you to 
accommodate the changes).

Define a CSV or whatever that works for their schema now, and is solid 
for your use. Require a full dump for their export every time, so you 
don't need to worry as much about data integrity. This is a good time to 
design your app and process to be modular such that it is recoverable 
from a full data set from their end plus a diff or sync set from your 
end, with no need to have your database backup on hand (just the diff or 
sync set)..  Think ahead and require compression now, so if the file 
gets large nothing breaks.

Your apps should accomodate updates via proper table structure *on your 
side*, so that the full dump gets parsed *by you* and your own tables 
accommodate syncing your stuff with their stuff. 

Ideally, your database and process is robust enough to restart fresh on 
a new system using only 1) a full dump they provide and 2) an 
import/sync set from your side. If you achieve that, you can then 
offload archive responsibility to their admin as well, by simply 
delivering the sync set at any time for him to archive along with a copy 
of the process and a copy of his full dump CSV.

If I were you I would create some one-way hash functions to run their 
dataset which I would run prior to every import, so that any changes at 
all (historical data, field names, eve spelling and or capitalizations) 
are flagged and the generated repor tis made available to both sides. Of 
course I would make sure my archive/diff set passed those same data 
integrity checks as well ;-)




More information about the talk mailing list