I'm trying to build an app that will take a real estate MLS(Multiple Listing Service) data from a CSV and insert it into the database. I have the CSV parsing taken care of but I'm having trouble making the database efficient. The problem is that the MLS data providers are known to change the format of the property elements quickly without much notice. So having one table that would match-up 1to1 with the data would possibly cause issues with loading data in the future.
It seems most developer put each element in a single row. IE my current setup:
id = int
property_id = longint
element_key = char
element_value = text
As you can imagine this is very slow with 1000s of properties with about 80+ elements each.
How can I make this more efficient but keep the database flexible?
And yes I know about memcache and plan on using it.