Я пытаюсь создать приложение, которое будет принимать данные MLS (Multiple Listing Service) недвижимости из CSV и вставить его в базу данных. У меня есть синтаксический анализ CSV, но у меня проблемы с эффективностью базы данных. Проблема в том, что поставщики данных MLS, как известно, быстро меняют формат элементов свойств без особого внимания. Поэтому наличие одной таблицы, которая соответствовала бы данным 1to1 с данными, может вызвать проблемы с загрузкой данных в будущем.Схема базы данных MLS
Кажется, что большинство разработчиков помещают каждый элемент в одну строку. IE моя текущая настройка:
id = int
property_id = longint
element_key = char
element_value = text
Как вы можете себе представить, что это очень медленно, с 1000s свойств около 80+ элементов каждый.
Как я могу сделать это более эффективным, но сохранить базу данных гибкой?
И да, я знаю о memcache и планирую использовать его.
В качестве альтернативы, если схема очень динамична, хранилище данных NoSQL, вероятно, будет иметь больше смысла, чем EAV - такая же мощность, меньше накладных расходов (но, конечно, большинство из тех же проблем) – Tao
Хороший комментарий о проблемах целостности данных в так называемой модели EAV. http://stackoverflow.com/a/4843859/369278 –