Scenario:I have a (large) table of information -- lets even call it a "custom post type" with titles, post body, and lots of custom meta -- that I want to integrate into WordPress (or *gasp* some other CMS) to allow for all the fun tagging, categorizing, commenting, perhaps forum-izing and serving of information.
The trick is, I also have some custom php programs that interact with the database as is. Also, I need to be able to access the database via external programs. (And, from an aesthetics/zen viewpoint I want my data all in one row.)
1) "Simplest" Dump the database to a csv, and import it into a custom type using word-presses custom post meta functions and re-write my custom functions to pull from the WPDB structure. Let WP be king.
THIS IS NOT GOOD. A) clumping all the meta into key,value wp_postmeta table structure will make indexing inefficient and slow down retrieval of information. B) as I said above, I need to be able to access the database via other programs - so would like to leave it as-is.
2) Keep two databases in sync: a) Create a full custom meta system that mirrors my custom table. b) Have my custom table update the wordpress wp_posts and wp_post_metadata table (via trigger) and vice-versa (via hooks) whenever a record is added or updated. Thus wordpress can do its thing, and my programs can do their thing, but the info is the same.
DOWNSIDE: Having two copies of the same data - even carefully synced - is asking for trouble. Especially in the unlikely case of data being edited in two place at once...
3) Totally hack WP-Core to modify all the custom metadata functions to redirect to my custom table... which would, of course, result in infinite update headaches... If this is what is required - I would probably be better off learning Drupal and using that:
4) Use another CMS...
As you see, I'm brainstorming possible solutions... Any thoughts?